Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Tasten - / Mausklick simulieren


Gewuerzgurke - Sa 01.11.08 11:16
Titel: Tasten - / Mausklick simulieren
Ich hoffe mal, ich bin hier in der richtigen Ecke gelandet.

Ich suche eine Methode, um einen Tasten - oder Tausklick zu simulieren, also so, dass duch das Aufrufen des Befehls zum Beispiel das Drücken der Leertaste simuliert wird und der Editor, wenn er gerade geöffnet ist, dann ein Leerzeichen schreibt.

Vermutlich gibt es zu diesem Thema schon Beiträge, aber ich weiss nicht, wonach ich suchen soll.


Delete - Sa 01.11.08 11:27

Du kannst das entweder per SendMessage machen oder per keybd_event bzw. mouse_event. Nun hast Du auch ein paar Suchbegriffe ;)


DelphiMarkus - Sa 01.11.08 11:28

Hallo!

Ich würde es mal mit "Tastendruck" versuchen. Da konnen schon einige passende Ergebnisse raus. Such einfach mal. Vielleicht findest du auch was mit "Tastendruch simulieren"


Gewuerzgurke - Sa 01.11.08 12:02

Hallo, ich konnte gerade nicht antworten...

Hab' das Ganze eben ausprobiert, aber vielleicht war die Idee mit dem Timer, der 100 Mal pro Sekunde mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); aufruft doch nicht so genial :D .

Zum Simulieren eines Leertastendrucks verwende ich jetzt keybd_event(VK_SPACE,0,0,0);. Sogar Programme, die DirectInput verwenden "fallen darauf herein".

Danke.


Delete - Sa 01.11.08 12:13

Vergiss aber nicht, die Taste auch wieder "loszulassen".


Gewuerzgurke - Sa 01.11.08 13:58

Wird sie denn das nicht schon bim Aufruf von keybd_event(VK_SPACE,0,0,0);?


Delete - Sa 01.11.08 14:04

Nein, erst bei Aufruf von keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);


Gewuerzgurke - Sa 01.11.08 14:36

Echt? Ich dachte, wenn man 0 einsetzt, wird die Taste simuliert gedrückt und wieder losgelassen. Erst wenn man KEYEVENTF_KEYDOWN, oder so eisetzt, wird nur ein Drücken der Taste simuliert. Zumindest müsste der Editor doch, wenn die Taste NUR gedrückt wurde, nach einer Sekunde anfangen, ganz viele Leerzeichen zu schreiben - oder? Bei mir ist dies aber nicht so.