Procedure com parâmetros insuficientes
Olá,
tenho a seguinte função >>
E o Delphi reclama na hora de compilar >>
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
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
Curtidas 0
Respostas
Claudia Nogueira
25/11/2012
Oie.
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
Por essa:
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.
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
Claudia Nogueira
25/11/2012
Vou responder novamente que eu digitei errado pra incluir o código:
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
Por essa:
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:
Por isso:
E isso:
Por isso:
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.
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
Luiz Eduardo
25/11/2012
Vou responder novamente que eu digitei errado pra incluir o código:
Você vai conseguir usar esse código se colocar o @ antes do GetActivePageUrlFromChrome trocando essa linha:
Por essa:
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:
Por isso:
E isso:
Por isso:
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.
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