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 sendmessage zum Browser (https://www.delphipraxis.net/124248-sendmessage-zum-browser.html)

raena 17. Nov 2008 15:12


sendmessage zum Browser
 
Hallo,

habe im Netz eine kleine Prozedur gefunden, mit der Zeichen zum
Notepad geschickt werden können. Dies funktioniert so weit.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fHandle: HWND;
  fText: String;
  i: Integer;
begin
  fText := 'Hello World!';
  fHandle := FindWindow('notepad', nil);
  if fHandle <>0 then
  begin
        fHandle := FindWindowEx(fHandle, 0, 'Edit', nil); // Edit Feld finden
        for i := 1 to Length(fText) do
          SendMessage(fHandle, WM_CHAR, Ord(fText[i]), 0);
  end;
end;
Nun versuche ich etwas zum Internet Browser zu senden und ändere die Zeile
fHandle := FindWindow('notepad', nil); um nach
fHandle := FindWindow('Google - Mozilla Firefox', nil);

Hat jemand ne Ahnung warum das nicht funtioniert?

Danke, Raena.

Bernhard Geyer 17. Nov 2008 15:23

Re: sendmessage zum Browser
 
Zitat:

Zitat von raena
Nun versuche ich etwas zum Internet Browser zu senden und ändere die Zeile
fHandle := FindWindow('notepad', nil); um nach
fHandle := FindWindow('Google - Mozilla Firefox', nil);

Hat jemand ne Ahnung warum das nicht funtioniert?

Das Hauptfensters des Browsers nimmt keine Tastatureingaben an. Such mal hier im Forum nach WinSpy. Dieser kann dir passenden FindWindow-Code generiern für komplexere Anwendungen als Notepad.

SirThornberry 17. Nov 2008 15:25

Re: sendmessage zum Browser
 
vermutlich weil dein Browser eine ganz andere Fensterstruktur hat. Und bist du dir sicher das der Browser wirklich ein Top-Levelfenster mit diesen Klassennamen hat? Und das es dann darauf auch auch Fenster der Klasse Edit gibt?
Ich denke der Browser hat die einzelnen Elemente nicht mal als Fenster sondern malt sie selbständig auf ein übergeordnetes Fenster.

raena 18. Nov 2008 12:31

Re: sendmessage zum Browser
 
ok, vielen Dank für die Antworten. ich dachte man könnte damit quick and dirty
was zum Browser schicken.
Da es aber jetzt noch ein anderes Problem gibt, mach ich es mit drag n drop.

Thx. Raena.

Larsi 18. Nov 2008 13:05

Re: sendmessage zum Browser
 
Worum geht es dir genau? Bei Google suchen oder bspw. wo einloggen?

Luckie 18. Nov 2008 13:10

Re: sendmessage zum Browser
 
Steuerelemente in einem Browser sind keine herkömmlichen Fenster wie man sie aus GUI Anwnedungen unter Windows kennt. Sie werden vom Render-Engine des Browsers gezeichnet und besitzen deshalb kein eigenes fensterhandle. Man kann sie deshaölb nicht mit den üblichen API-Funktionen, die ein Fensterhandle benötigen ansprechen.

Trotzdem ist es möglich diese Steuerelemente von einem programm aus anzusprechen (Schaltflächen drücken, texteingabefelder ausfüllen). Wie man das macht, sollte sich iher im Forum finden lassen.

raena 28. Nov 2008 13:59

Re: sendmessage zum Browser
 
Zitat:

Zitat von Larsi
Worum geht es dir genau? Bei Google suchen oder bspw. wo einloggen?


Ja genau, darum ging es. Da es aber mit weiteren unlösenbaren Problemen verbunden ist,
habe ich es mit Drag and Drop gelöst.
Also von meiner Seite ist die Sache erledigt.

Merci für die Antworten, Grüsse, Raena.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.

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