Frankieboy - Mi 12.03.08 13:25
Titel: Mal wieder keybd_event...
Hallo,
ich bin gerade dabei, die VC DosCommand etwas zu verändern...
Ich stelle diese Frage in die API-Section, da das Thema mehr damit zu tun hat, als mit der VCL)
DosCommand bietet die Möglichkeit, Eine Kommandozielenanwendung unsichtbar zu starten und liest den Fenstertext durch eine Pipe in eine StringList aus. Außerdem kann man durch eine zweite Pipe Input (also Text) an die Konsole senden.
Da das für meine Belange aber nicht ausreicht, will ich eine zusätzliche
procedure einbinden, um einen String durch mehrmaliges, simuliertes Tastendrücken an dieses Fenster zu senden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure SendLineDirect(ALine: String; EndOfLine: Boolean); begin for i := 0 to length(Aline) do begin keybd_event(?,?,0,0); keybd_event(?,?,KEYEVENTF_KEYUP,0); end; if EOL then begin keybd_event(VK_RETURN,?,0,0); keybd_event(VK_RETURN,?,KEYEVENTF_KEYUP,0); end; end; |
Zusätzliche Infos:
TDosCommand startet einen eigenen Thread TDosThread (Typ TThread), sobald man DosCommand.Execute aufruft.
Das zu TDosThread zugehörige Fenster ist standardmäßig minimiert (SW_HIDE);
Also meine Frage
Wie stelle ich sicher, dass die Keypresses auch wirklich an das Fenster von TDosThread gesendet (und ausgewertet) werden? Es soll weiter verborgen bleiben und nicht in den Vordergrund!
Vielen Dank schon mal im Voraus!
Frankie