![]() |
Tastenkombinationen Systemweit abfragen
Ich versuche schon seit langem Tastatureingaben an ein in den Tray minimiertes Programm zu senden. Dazu habe ich hier über die Suche schon einige Hinweise gefunden, aber wenn ich den Tastaturhook- Code verwende, bbleibt das Programm einfach hängen. Gibt es eine bessere Möglichkeit z.B die Tastenkombination Strg+Alt+F1 für sein Programm zu reservieren?
|
Re: Tastenkombinationen Systemweit abfragen
|
Re: Tastenkombinationen Systemweit abfragen
Delphi-Quellcode:
Wie sage ich dem Programm was ausgeführt werden soll?
RegisterHotKey(Handle,$FF,MOD_ALT+MOD_CONTROL,50);
|
Re: Tastenkombinationen Systemweit abfragen
Moin E307,
hier mal ein komplettes Kurzbeispiel:
Delphi-Quellcode:
Wichtig:
type
TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure WMHOTKEY(var msg : TWMHotKey); message WM_HOTKEY; procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin if not RegisterHotKey(self.Handle,0,MOD_ALT or MOD_CONTROL,VK_F1) then begin ShowMessage(SysErrorMessage(GetLastError)); end; end; procedure TForm1.WMHOTKEY(var msg: TWMHotKey); begin if msg.HotKey = 0 then ShowMessage('Hotkey aufgerufen'); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(self.Handle,0); end; Wenn der Hotkey schon von einem anderen Programm reserviert wurde, schlägt die Registrierung fehl, hier gilt: Wer zuerst kommt mahlt zuerst. |
Re: Tastenkombinationen Systemweit abfragen
Komisch, so ähnlich sah das bei mir auch aus, nur, dass die Registrierung nicht geklappt hat. Mit dem Code geht's, Vielen Dank!
|
Re: Tastenkombinationen Systemweit abfragen
Moin E307,
wenn die Registrierung nicht klappt, kannst Du Dir ja anzeigen lassen, warum nicht. Normalerweise wohl, weil die Kombination schon registriert wurde. Was mir übrigens noch aufgefallen ist: MOD_ALT+MOD_CONTROL Wenn Du irgendwelche Werte kombinieren kannst solltest Du das nie mit + machen, sondern immer mit OR, da Du sonst Gefahr läufst ungültige Werte zu erzeugen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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