Delphi - база знаний

         

Как взять URL из окна IE?


Как взять URL из окна IE?




uses windows, ddeman, ......

function Get_URL(Servicio: string): String;
uses windows, ddeman, ......

function Get_URL(Servicio: string): String;
var
  Cliente_DDE: TDDEClientConv;


  temp:PChar;   
begin
   Result := '';
   Cliente_DDE:= TDDEClientConv.Create( nil );
    with Cliente_DDE do
       begin
          SetLink( Servicio,'WWW_GetWindowInfo');
          temp := RequestData('0xFFFFFFFF');
          Result := StrPas(temp);
          StrDispose(temp);  //<<-Предотвращаем утечку памяти
          CloseLink;
       end;
     Cliente_DDE.Free;
end;

procedure TForm1.Button1Click(Sender);
begin
  showmessage(Get_URL('Netscape'));
     или
  showmessage(Get_URL('IExplore'));
end


Автор ответа: Song

Взято с Vingrad.ru


Пример показывает, как найти окно Internet Explorer, и захватить из него текущий URL, находящийся в поле адреса IE. В Исходнике используются простые функции win32 api на delphi.

function GetText(WindowHandle: hwnd): string;
var
  txtLength: integer;
  buffer: string;
begin
  TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
  txtlength := txtlength + 1;
  setlength(buffer, txtlength);
  sendmessage(WindowHandle, wm_gettext, txtlength, longint(@buffer[1]));
  result := buffer;
end;

 
function GetURL: string;
var
  ie, toolbar, combo,
    comboboxex, edit,
    worker, toolbarwindow: hwnd;
begin
  ie := FindWindow(pchar('IEFrame'), nil);
  worker := FindWindowEx(ie, 0, 'WorkerA', nil);
  toolbar := FindWindowEx(worker, 0, 'rebarwindow32', nil);
  comboboxex := FindWindowEx(toolbar, 0, 'comboboxex32', nil);
  combo := FindWindowEx(comboboxex, 0, 'ComboBox', nil);
  edit := FindWindowEx(combo, 0, 'Edit', nil);
  toolbarwindow := FindWindowEx(comboboxex, 0, 'toolbarwindow32', nil);

  result := GetText(edit);
{-------------------------------------------------------}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(GetURL);
end;

Взято с Исходников.ru




Содержание раздела