Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tastenkombination simulieren (https://www.delphipraxis.net/95124-tastenkombination-simulieren.html)

Todd 1. Jul 2007 14:46


Tastenkombination simulieren
 
Hallo Leute,

ich möchte gerne auf meinem Formular die folgende Tastenkombination simulieren.
D.h. der User drückt einen Button und eine Tastenkombination wird so ausgeführt, als ob es der User eingegeben hätte:

Delphi-Quellcode:
procedure Form1.Button1Click(TObject *Sender)
begin
     //Jetzt die Tastenkombination - Str+Shift+L - 2mal nacheinander ausführen
...
...
end
Danke für eure Hilfe

DeddyH 1. Jul 2007 14:47

Re: Tastenkombination simulieren
 
Such mal nach keybd_event.

Robert Marquardt 1. Jul 2007 14:59

Re: Tastenkombination simulieren
 
Funktioniert mit WM_KEYDOWN und WM_KEYUP Messages. Es koente aber Probleme damit geben das es von einem TButton ausgeloest wird. Ein TButton ist eine TWinControl und hat beim Ausloesen den Fokus. Die Tastendruecke gehen also an den Button und duerften dort einfach ignoriert werden.

Todd 1. Jul 2007 15:26

Re: Tastenkombination simulieren
 
Okay danke,

es funktioniert halbwegs:
Delphi-Quellcode:
procedure Form1.Button1Click(TObject *Sender)
begin
     keybd_event(VK_CONTROL,0,0,0);
     keybd_event(VK_SHIFT,0,0,0);
     keybd_event('L',0,0,0);
end
Das Problem ist jetzt, dass die Tastenkombination auch weiterhin besteht. Wie kann ich denn diese wieder auf "Normal" zurücksetzen, so dass kein Tastendruck simuliert wird und das Keyboard sozusagen wieder in seiner Ausgangseinstellung ist?

DeddyH 1. Jul 2007 15:49

Re: Tastenkombination simulieren
 
Hast Du die Hilfe zu keybd_event nicht ganz gelesen? :zwinker: Es gibt die Konstante KEYEVENTF_KEYUP, die dafür zuständig ist.

Todd 1. Jul 2007 16:07

Re: Tastenkombination simulieren
 
Danke für die schnelle Hilfe...

Leider habe ich in meiner Hilfe keinen Eintrag zu "keybd_event" und konnte deshalb auch nicht nachsehn.

Funktioniert jetzt jedenfalls einwandfrei...Nochmals danke

Robert Marquardt 1. Jul 2007 18:21

Re: Tastenkombination simulieren
 
Man laedt sich am besten von Microsoft das Platform SDK herunter. Das ist das Win32 API mit Hilfe.


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