Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Warum funktioniert UnRegisterHotKey nicht? (https://www.delphipraxis.net/9671-warum-funktioniert-unregisterhotkey-nicht.html)

nils14 1. Okt 2003 13:27


Warum funktioniert UnRegisterHotKey nicht?
 
Hallo@all

Das Programm soll einen HotKey registrieren das macht es mit:
RegisterHotKey(Handle, 1,0, Ord('A');

Das Programm reagiert auch wenn ich auf a drücke. Wenn ich ein zweite mal auf a drücke soll das Programm nicht mehr ragieren.

UnRegisterHotKey(Handle, Ord('A');

Warum reagiert das Programm immer noch wenn der HotKey eigentlich nicht mehr existieren soll? :wall:

Ich wäre für Antworten sehr dankbar.

Nils

Chewie 1. Okt 2003 13:32

Re: Warum funktioniert UnRegisterHotKey nicht?
 
Schau dir doch mal die Referenz zu UnregisterHotKey an. Dort wirst du sehen, dass der zweite Parameter nicht den Keycode des Hotkeys angibt, sondern die ID, das ist der zweite Parameter von RegisterHotkey.

nils14 1. Okt 2003 13:43

Re: Warum funktioniert UnRegisterHotKey nicht?
 
Hallo

Ich habe das auch schon anders mit dem ID Parameter gemacht aber dann kommt die Meldung: Zu viele Parameter.

Wie könnte man das denn dan machen mit UnRegisterHotKey hast du ein Beispiel?

Nils

Chewie 1. Okt 2003 13:57

Re: Warum funktioniert UnRegisterHotKey nicht?
 
Ganz einfach. Dein Aufruf von RegisterHotKey ist schon richtig, und UnregisterKotkey muss dann so aussehen:
Delphi-Quellcode:
UnregisterHotkey(Handle, 1);
Das Tastenkürzel brauchst du dot nicht anzugeben.

Noch ein kleiner Tipp: Benutze als Identifier nicht 1, die ist so naheliegend, dass sie mit hoher Wahrscheinlichkeit schon genutzt sein könnte. Benutz lieber ein globales Atom:
Delphi-Quellcode:
var
  AtomId: TAtom;
begin
  AtomID := GlobalAddAtom('Irgendeiner eindeutiger String');
  RegisterHotkey(Handle, AtomID, 0, Ord('A'));
  //...
  UnregisterHotkey(Handle, AtomID);
  GlobalDeleteAtom(AtomID);
end;


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