Forum: Win32/Win64 API (native code)
Delphi
by DocE,
29. Okt 2006
Doch genau an die Applikation mit dem Fokus wird das gesendet. Eher gesagt wir der Tastendruck simuliert, also die Message erzeugt und Windows gibt dann die Message an die aktive Anwendung weiter.
Wenn Du also eine fremde Anwendung ansprechen möchtest, musst Du das ganze verzögert ausführen, wenn es z.B. bei einem ButtonClick passieren soll, sonst ist ja gerade Deine eigene Anwendung aktiv,...
Forum: Win32/Win64 API (native code)
Delphi
by DocE,
29. Okt 2006
Stimmt, das Key Up kann weggelassen werden. Allerdings wird dann trotzdem jeweils KeyDown und KeyPress (anstatt nur KeyPress) aufgerufen. Zum Schluss dann das KeyUp nicht vergessen.
Und ein Sleep (oder sonstige Verzögerung) ist zwingend erforderlich! Gerade noch einmal probiert...
Grüsse
...Doc
Forum: Win32/Win64 API (native code)
Delphi
by DocE,
29. Okt 2006
Moin,
ich habe das gerade mal getestet...
Durch den Befehl wird KeyDown und KeyPress ausgelöst (kein KeyUp, die Taste bleibt also gedrückt).
Im Gegensatz zur echten Tastatur wird das KeyPress Ereignis, was z.B. für die Darstellung der Zeichen in visuellen Komponenten zuständig ist nur 1x ausgelöst. Es kommt jetzt darauf an, was Du machen möchtest. Prüft die Anwendung, die Du steuern...
Forum: Win32/Win64 API (native code)
Delphi
by DocE,
28. Okt 2006
Also, das ist im Prinzip ganz einfach.
Mit
Keybd_Event(Ord('A'),0,0,0); // entspricht dem KeyDown
wird z.B. die Taste 'A' solange gedrückt (gehalten) bis man
Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0); // entspricht dem KeyUp