![]() |
Tastatureingabe senden
Ich wollte den Befehl KeyBd_Event() mit Messages "nachbauen", z.B. mit Postmessage. Da dieß nicht geklappt hat und ich vieles ausprobiert habe, was alles nicht perfekt war möchte ich nur den Code zeigen, welcher gar nicht klappt und bei nur auf Verwunderung stößt:
Delphi-Quellcode:
Natürlich wollte ich erteinmal mit einer einfachen Enter-Eingabe beginnen. Wie ich Lparam später noch zusammensetzen muss weiß ich jetzt noch gar nicht. Wär toll wenn ihr da was fändet. Eigentlich müsste ich doch das Handle vom Fenster erhalten, welches den Fokus für Tastatureingaben hat:
var hwnd:cardinal;
begin hwnd:=getfocus; postmessage(hwnd,WM_KEYUP,13,0); postmessage(hwnd,WM_KEYUP,13,0); end; ![]() Trotzdem passiert garn nichts oder wenn ganz wenig. :( Ich hoffe ihr könnt mir helfen. |
Re: Tastatureingabe senden
Meine Win32API-Hilfe sagt dazu:
Zitat:
|
Re: Tastatureingabe senden
Ich hab ja uch das Ziel ein Window mit den Messages zu "erreichen", welches überhaupt Tastendrücke verarbeiten kann. _Oder hab ich da was falsch übersetzt?
|
Re: Tastatureingabe senden
Du meinst vermutlich eine andere Anwendung, oder? Diese dürfte im Normalfall kaum mit Deiner MessageQueue verknüpft sein ;) Unter "Remarks" heißt es in meiner Hilfe weiter:
Zitat:
|
Re: Tastatureingabe senden
Ah ok ;) danke. Mit GetForeGroundWindow hab ich es auch schon versucht. Trotzdem erreicht die "Enter-Eingabe" nicht jedes Fenster z.B. mein Delphi, da GetForeGroundWindow das ChildWindow nicht wiedergibt. Zumindest so hab ich mir das erklärt.
|
Re: Tastatureingabe senden
Um es nocheinmal zu verdeutlichen: Ich brüchte eine GetForeGround-Function für ChildWindows, damit ich das ChildWindow erhalte, welches gerade bearbeitet wird oder mit welchem ich arbeite... Bis jetzt hab ich keine Lösung gefunden, wär echt super, wenn noch jemand was dazu weiß. :-D
|
Re: Tastatureingabe senden
Ich habe das zwar noch nie gemacht, aber die Reihenfolge müsste wohl so sein:
- mit GetForegroundWindow aktives Fenster ermitteln - mit AttachThreadInput in dessen MessageQueue einklinken - mit GetFocus das aktive Eingabefenster ermitteln Falls das falsch ist, möge man mich bitte korrigieren. |
Re: Tastatureingabe senden
Danke ich werde es mal ausprobieren, allerdings muss ich mich mehr mit AttachThreadInput beschäftigen, da ich es wahrscheinlich dreimal falsch übersetze und dann nur die hälfte lese :-D . Nochmal danke.
|
Re: Tastatureingabe senden
Es hat geklappt! Danke für die Hilfe :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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