URL von Chromefenster auslesen
Abend zusammen,
ich bin ziemlich neu hier, deswegen bin ich nicht sicher ob das Thema hier richtig ist..naja mal schauen:-D Ich möchte gerne die URL eines kurz zuvor geöffneten CHromefensters in ein Eingabefeld von DElphi kopiert haben. Bis jetzt habe ich das unten stehende gefunden. Allerdings weiß ich nicht welches Handle das Chromefenster hat function Tsuche.GetChromeURL(const hwndChromeWindow: HWND): string; var hwndChromeOmnibox: HWND; function GetText(WindowHandle: HWND): string; var TxtLength: integer; Buf: string; begin TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0) + 1; SetLength(Buf, TxtLength); SendMessage(WindowHandle, WM_GETTEXT, TxtLength, LongInt(@Buf[1])); Result := Buf; end; begin Result := ''; hwndChromeOmnibox := FindWindowEx(hwndChromeWindow, 0, PChar('Chrome_OmniboxView'), nil); if hwndChromeOmnibox <> 0 then Result := GetText(hwndChromeOmnibox); eErgebnis.Text := GetChromeURL(#FEHLENDER PARAMETER#); <-----Was muss da rein?! Hoffe ich habe mein Problem ein wenig verständlich gemacht:lol::lol: ps: habe mit google nichts genaueres gefunden.. Wahrscheinlich ist die Lösung ganz einfach und ich komme nur nicht drauf:oops: Und jetzt schon mal vielen Dank im vorraus:thumb: |
AW: URL von Chromefenster auslesen
An der Chrome-URL haben sich schon Viele vergeblich versucht:
http://www.delphipraxis.net/178353-d...-auslesen.html
Delphi-Quellcode:
Liefert leider immer einen leeren String zurück :(
function GetChromeURL(const hwndChromeWindow: HWND): string;
var hwndChromeOmnibox: HWND; function GetText(WindowHandle: HWND): string; var TxtLength: integer; Buf: string; begin TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0) + 1; SetLength(Buf, TxtLength); SendMessage(WindowHandle, WM_GETTEXT, TxtLength, LongInt(@Buf[1])); Result := Buf; end; begin Result := ''; hwndChromeOmnibox := FindWindowEx(hwndChromeWindow, 0, PChar('Chrome_OmniboxView'), nil); //funzt auch nicht: //hwndChromeOmnibox := FindWindowEx(hwndChromeWindow, 0, PChar('Chrome_AutocompleteEditView'), nil); if hwndChromeOmnibox <> 0 then Result := GetText(hwndChromeOmnibox); end; procedure TForm1.Button3Click(Sender: TObject); var ChromeHWND: HWND; Buffer: array[0..255] of Char; s: string; begin ChromeHWND := FindWindow('Chrome_WidgetWin_0', Buffer); if ChromeHWND <> 0 then begin s := GetChromeUrl(ChromeHWND); MessageBox(Handle, PChar(s), 'URL-Info', mb_Ok); end else MessageBox(Handle, 'Nix gefunden.', 'Fehler', mb_Ok or mb_IconExclamation); end; MfG |
AW: URL von Chromefenster auslesen
Zitat:
-> Rückgabewerte von WinAPIs auswerten Es gibt entweder keine Fenster/Edits, mit dem Namen "Chrome_OmniboxView" oder es es sind keine Text-Controls. |
AW: URL von Chromefenster auslesen
Und das heißt jetzt was?:shock:
Also wenn ich das richtig verstanden habe, benötige ich das aktuelle Crome-Tab-Handle! und das kann ich mit dem ProcessExplorer bekommen...Allerdings bekomme ich dann zwar die Integerwerte, allerdings funzen die trotzdem nicht:oops:?! also entweder mache ich was falsch oder ich bin zu dumm um die abzulesen ;=) Wäre über Hilfe sehr dankbar |
AW: URL von Chromefenster auslesen
Laut dieser Antwort auf SO unterstützt Chrome die Windows Accessibility API, mit der sich Browser Bar Informationen und Inhalte der Webseite auslesen lassen sollen:
http://stackoverflow.com/a/16853301/80901 Es scheint allerdings .NET / managed Code zu sein. |
AW: URL von Chromefenster auslesen
Zitat:
Delphi-Quellcode:
Und wenn man statt SentMessage und WM_GETGEXTLENGTH/WM_GETTEXT die APIs GetWindowTextLength und SetWindowText verwendet, dann kann man davon auch die erweiterten Fehlercodes erfahren. (z.B. kein Text-Control)
if ChromeHWND <> 0 then
... else //MessageBox(Handle, PChar('Irgenein Fehlerzusatztext: ' + SysErrorMessage(GetLastError)), 'Fehler', mb_Ok or mb_IconExclamation); RaiseLastOSError; Zitat:
Delphi-Quellcode:
function GetText(WindowHandle: HWND): string;
var TxtLength: Integer; begin TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0); SetLength(Result, TxtLength); if TxtLength > 0 then SendMessage(WindowHandle, WM_GETTEXT, TxtLength + 1, WPARAM(PChar(Result))); end; function GetText(WindowHandle: HWND): string; begin SetLength(Result, SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0)); if Result <> '' then SendMessage(WindowHandle, WM_GETTEXT, Length(Result) + 1, WPARAM(PChar(Result))); end; |
AW: URL von Chromefenster auslesen
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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