Fórum Procedure com parâmetros insuficientes #429656
25/11/2012
0
tenho a seguinte função >>
function GetActivePageUrlFromChrome(Handle: HWnd; Param: LParam): Bool; stdcall;
var
List: TStrings;
hWndChrome, hWndChromeChild: HWND;
Buffer : array[0..255] of Char;
begin
List := TStrings(Param);
//get the window caption
SendMessage(Handle, WM_GETTEXT, Length(Buffer), integer(@Buffer[0]));
//look for the chrome window with "Buffer" caption
hWndChrome := FindWindow('Chrome_WidgetWin_0', Buffer);
if hWndChrome <> 0 then
begin
hWndChromeChild := FindWindowEx(hWndChrome, 0, 'Chrome_AutocompleteEditView', nil);
if hWndChromeChild <> 0 then
begin
SendMessage(hWndChromeChild, WM_GETTEXT, Length(Buffer), integer(@Buffer));
List.Add(Buffer);
end;
end;
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
slChromeUrl : TStringList;
begin
slChromeUrl := TStringList.Create;
try
EnumWindows(GetActivePageUrlFromChrome, LParam(slChromeUrl));
Memo1.Lines.AddStrings(slChromeUrl);
finally
FreeAndNil(slChromeUrl);
end;
end;
end.
E o Delphi reclama na hora de compilar >>
[Error] Unit1.pas(58): Not enough actual parameters
Já mexi muito aqui mas não descobri onde está erro. Alguém aí poderia dá uma analisada e me informar onde está este pequeno erro?
Valeu galera!
FONTE : http://stackoverflow.com/questions/5222301/how-to-get-the-url-from-chrome-using-delphi
Luiz Eduardo
Curtir tópico
+ 0Posts
25/11/2012
Claudia Nogueira
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
EnumWindows(GetActivePageUrlFromChrome, LParam(slChromeUrl));
Por essa:
EnumWindows(@GetActivePageUrlFromChrome, LParam(slChromeUrl));
Mas mesmo assim pode ser que não consiga pegar a URL do Chrome por que depende da versão do navegador ou ainda alguma outra coisa que eu desconheça.
Na minha máquina eu só consegui capturar a URL quando troquei isso:
[cose]Chrome_WidgetWin_0[/code]
Por isso:
[cose]Chrome_WidgetWin_1[/code]
E isso:
[cose]Chrome_AutocompleteEditView[/code]
Por isso:
[cose]Chrome_OmniboxView[/code]
Para obter o nome dessas classes eu usei uma função que tenho aqui e obtive Chrome_WidgetWin_1 para o navegador e Chrome_OmniboxView para o link.
Gostei + 0
25/11/2012
Claudia Nogueira
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
EnumWindows(GetActivePageUrlFromChrome, LParam(slChromeUrl));
Por essa:
EnumWindows(@GetActivePageUrlFromChrome, LParam(slChromeUrl));
Mas mesmo assim pode ser que não consiga pegar a URL do Chrome por que depende da versão do navegador ou ainda alguma outra coisa que eu desconheça.
Na minha máquina eu só consegui capturar a URL quando troquei isso:
Chrome_WidgetWin_0
Por isso:
Chrome_WidgetWin_1
E isso:
Chrome_AutocompleteEditView
Por isso:
Chrome_OmniboxView
Para obter o nome dessas classes eu usei uma função que tenho aqui e obtive Chrome_WidgetWin_1 para o navegador e Chrome_OmniboxView para o link.
Gostei + 0
25/11/2012
Luiz Eduardo
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
EnumWindows(GetActivePageUrlFromChrome, LParam(slChromeUrl));
Por essa:
EnumWindows(@GetActivePageUrlFromChrome, LParam(slChromeUrl));
Mas mesmo assim pode ser que não consiga pegar a URL do Chrome por que depende da versão do navegador ou ainda alguma outra coisa que eu desconheça.
Na minha máquina eu só consegui capturar a URL quando troquei isso:
Chrome_WidgetWin_0
Por isso:
Chrome_WidgetWin_1
E isso:
Chrome_AutocompleteEditView
Por isso:
Chrome_OmniboxView
Para obter o nome dessas classes eu usei uma função que tenho aqui e obtive Chrome_WidgetWin_1 para o navegador e Chrome_OmniboxView para o link.
Aê Claudia, brigadão valeu mesmo! deu certinho aqui! estou interessado nessa função que pega as classes do navegador que você tem aí, poderia disponibilizar aqui nesse tópico ou então indicar um site onde possa ter a mesma!?
Me diga uma coisa: Essa sua função funciona também para outros navegadores ou só mesmo pro Chrome?
Abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)