Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Titel und URL anhand des Klassenames ermitteln? (https://www.delphipraxis.net/62766-titel-und-url-anhand-des-klassenames-ermitteln.html)

TriphunEM 9. Feb 2006 09:40


Titel und URL anhand des Klassenames ermitteln?
 
Hi,

ich möchte den Fenstertitel und die URL verschiedener Browser (in meinem Code IE,Firefox und Opera) ermitteln.

Das mit dem Fenstertitel ist überhaupt kein Problem, aber die URL bekomm ich nicht aus den Adressleisten des Firefox und Opera.
Bei IE klappt es, zu mal ich mit WinSpy auch den Klassennamen raus bekomme.

Nur bei Firefox und Opera scheint das alles in ein Handle gepackt zu sein.
Weiß jemand wie ich an den Text in der Adressleiste ran komme???

Der folgende Code soll alle Fenstertitel und URLs der geöffneten Browser anzeigen. Wie gesagt bei Firefox und Opera fehlt eben die URL.

Ich hoffe mir kann da jemand weiterhelfen????

Delphi-Quellcode:
procedure TMainForm.act_AddBookmarkExecute(Sender: TObject);
var
  hwnd, chwnd : THandle;
  p : array[0..256] of Char;
begin
  hwnd := FindWindow(nil, nil);
  GetClassName(hwnd, P, SizeOf(P));

  while hwnd <> 0 do begin
    hwnd := GetWindow(hwnd, GW_HWNDNEXT);
    GetClassName(hwnd, P, SizeOf(P));

    {****
    * Firefox
    ****}
    if string(P) = 'MozillaUIWindowClass' then begin
      // Fenstertitel holen
      GetWindowText(hwnd, P, 255);
      site_Desc := P;
      // Url holen
      chwnd := FindWindowEx(hwnd, 0, 'MozillaWindowClass', nil);
      SendMessage(chwnd, WM_GETTEXT, SizeOf(P), Integer(@P));
      site_Url := string(P);

      ShowMessage('Firefox : '+site_Desc+#13#10+site_Url);
    end;

    {****
    * Internet Explorer
    ****}
    if string(P) = 'IEFrame' then begin
      // Fenstertitel holen
      GetWindowText(hwnd, P, 255);
      site_Desc := P;
      // Url holen
      chwnd := FindWindowEx(hwnd, 0, 'WorkerW', nil);
      chwnd := FindWindowEx(chwnd, 0, 'ReBarWindow32', nil);
      chwnd := FindWindowEx(chwnd, 0, 'ComboBoxEx32', nil);
      SendMessage(chwnd, WM_GETTEXT, SizeOf(P), Integer(@P));
      site_Url := string(P);

      ShowMessage('IE : '+site_Desc+#13#10+site_Url);
    end;

    {****
    * Opera
    ****}
    if string(P) = 'OpWindow' then begin
      // Fenstertitel holen
      GetWindowText(hwnd, P, 255);
      site_Desc := P;
      // Url holen
      chwnd := FindWindowEx(hwnd, 0, 'OperaWindowClass', nil);
      SendMessage(chwnd, WM_GETTEXT, SizeOf(P), Integer(@P));
      site_Url := string(P);

      ShowMessage('Opera : '+site_Desc+#13#10+site_Url);
    end;

  end;
end;
Gibt es vielleicht ne möglichkeit alle unterklassen einer klasse angezeigt zu bekommen?

MfG und Thx, Frank

marabu 9. Feb 2006 10:06

Re: Titel und URL anhand des Klassenames ermitteln?
 
Hi.

Hier ein Link, während du auf Antworten warten musst.

Grüße vom marabu

TriphunEM 9. Feb 2006 10:48

Re: Titel und URL anhand des Klassenames ermitteln?
 
danke dir,

aber von VB hab ich keine ahnung. seh da ne so richtig durch.

TriphunEM 9. Feb 2006 16:06

Re: Titel und URL anhand des Klassenames ermitteln?
 
ich hab mal mit der lösung der unit ddeman rum probiert.

aber leider genisst die unit ddeman kein guten ruf und opera unterstüzt sie leider auch nicht!!!

????


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz