Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Tastendruck in TWebBrowser simulieren klappt nicht.. (https://www.delphipraxis.net/51082-tastendruck-twebbrowser-simulieren-klappt-nicht.html)

resolution 5. Aug 2005 14:44


Tastendruck in TWebBrowser simulieren klappt nicht..
 
Hallo :)

erstmal den code der procedure die den tastendruck in browser=TWebBrowser simulieren sollte:
(geht testweise nur um Numpad 8 und Numpad 2)
Delphi-Quellcode:
procedure numkeyp(k:integer);
begin
    mf.browser.SetFocus; { kann ich weglassen oder? ;) }
    case k of
    8: PostMessage(mf.browser.Handle,WM_KEYDOWN,VK_NUMPAD8,0);
    2: PostMessage(mf.browser.Handle,WM_KEYDOWN,VK_NUMPAD2,0);
    else
    end;
    PostMessage(mf.browser.Handle,WM_KEYUP,0,0);
end;
und das ist eine dummy-webpage:
Code:
<html>
<body>
<script language=javascript>
document.onkeypress=keyevent;
function keyevent(e)
{
document.write(String.fromCharCode(window.event.keyCode).toUpperCase());
}
</script>
der TWebBrowser bekommt von dem 'tastendruck' nichts mit, wenn ich die taste selbst drücke funktioniert es..

das problem ist also, wie ich den tastendruck simuliere, wie mache ich es richtig?

bitte kein verweis auf die suche, da hab ich mir postmessage rausgesucht ;)

danke + lg,
resolution

jensw_2000 9. Aug 2005 00:13

Re: Tastendruck in TWebBrowser simulieren klappt nicht..
 
Versuch es doch mal mit


Delphi-Quellcode:
procedure numkeyp(k:integer);
begin
    mf.browser.SetFocus; // { kann ich weglassen oder? ;) } << jetzt nicht mehr ;o)
    Case k of
      2: keybd_event(Ord('2'), 0, 0, 0);
      8: keybd_event(Ord('8'), 0, 0, 0);
    end;
end;

:hi:

resolution 10. Aug 2005 08:29

Re: Tastendruck in TWebBrowser simulieren klappt nicht..
 
hm, die anwendung läuft ja im hintergrund, verliere ich dann nicht eigentlich den focus bei dem programm mit dem ich gerade arbeite? z.B. Texteditor?

und dann ist doch keybd_event global, s.d. die Zeichen dann auch bzw. doch nur im Texteditor auftauchen würden, oder? :)

die tasten sind shortcuts für links, ich suche mir also im moment die links anhand von Item().innerText und innerHTML heraus und dann eben Item().Click, ist auch für zukünftige erweiterungen praktischer :)

jensw_2000 10. Aug 2005 08:42

Re: Tastendruck in TWebBrowser simulieren klappt nicht..
 
Ja, bei keybd_event muss deine Anwendung aktiv sein und der Browser muss den Focus haben.

Schau dir sonst mal SENDKEYS an ... Das könnte noch eine Alternative sein


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