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 Postmessage Befehl an WebBrowser-Komponente? (https://www.delphipraxis.net/48579-postmessage-befehl-webbrowser-komponente.html)

Esolit 27. Jun 2005 16:21


Postmessage Befehl an WebBrowser-Komponente?
 
Hi,

was ist an folgendem Quelltext falsch? Ich lege erst den Fokus meinen Programmes auf das Dokument im WebBrowser und versuche dann einen Tastenbefehl (im Beispiel Tabulator-Taste) an diese zu schicken. Nur irgendwie wird das jedes mal so interpretiert als wenn der Befehl an die Form geschickt worden wäre. Stimmt vielleicht der Klassenname des WebBrowsers nicht?

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
wnd : HWND;
begin
wnd := FindWindow('TForm1',nil);
if wnd <> 0 then
begin
wnd := FindWindowEx(wnd,0,'TWebBrowser1',nil);
(Webbrowser1.Document as IHTMLDocument2).ParentWindow.Focus;
 PostMessage(wnd, WM_KEYDOWN , VK_Tab, 0);
end else showmessage('Not Found');
end;
Beste Grüße

toms 27. Jun 2005 23:35

Re: Postmessage Befehl an WebBrowser-Komponente?
 
Hallo,

Probier's mal so:

Delphi-Quellcode:
var
  wnd :HWND;
begin
  wnd := FindWindowEx(WebBrowser1.Handle,0,'Shell DocObject View',nil);
  wnd := FindWindowEx(wnd ,0,'Internet Explorer_Server',nil);
  if wnd <> 0 then
  begin
   // *** (Webbrowser1.Document as IHTMLDocument2).ParentWindow.Focus; *** // ist wahrscheinlich nicht notwendig
     PostMessage(wnd, WM_KEYDOWN , VK_Tab, 0);
  end;
end;

shmia 28. Jun 2005 13:11

Re: Postmessage Befehl an WebBrowser-Komponente?
 
Nach
Delphi-Quellcode:
PostMessage(wnd, WM_KEYDOWN , VK_Tab, 0);
muss auch
Delphi-Quellcode:
PostMessage(wnd, WM_KEYUP , VK_Tab, 0);
folgen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 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