Hi,
ich hab im moment ein Problem mit der Funktion "registerHotKey".
Ich habe in meinem Programm ein paar Numpad Tasten als HotKeys registriert, die funktionieren
komischweise auch überall, nur irgendwie nicht da wo sie sollten, denn das Programm ist eine Hilfe für ein Spiel. Durch druck auf eine HotKey soll eigentlich ein Timer gestartet werden, das klappt in jedem
anderen Spiel nur nicht in dem wo es sollte (es handelt sich hierbei um League of Legends).
Die HotKeys scheinen einfach nicht in meinem Programm anzukommen wenn das Spiel im Vordergrund ist, sobald ich aber wieder mein Programm in den Vordergrund rücke gehen die Tasten wieder.
Wie gesagt in jedem anderen Spiel funktioniert es. Gibt es vielleicht eine andere Methode, hab z.B. von GetAsyncKeyState gehört?
Hier ein paar Code Ausschnitte:
FormCreate
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
// HotKey Own Blue Buff
id1 := GlobalAddAtom('
Hotkey1');
RegisterHotKey(
Handle, id1, 0, VK_NUMPAD7);
// HotKey Own Red Buff
id2 := GlobalAddAtom('
Hotkey2');
RegisterHotKey(
Handle, id2, 0, VK_NUMPAD8);
// HotKey Enemy Blue Buff
id3 := GlobalAddAtom('
Hotkey3');
RegisterHotKey(
Handle, id3, 0, VK_NUMPAD4);
// HotKey Enemy Red Buff
id4 := GlobalAddAtom('
Hotkey4');
RegisterHotKey(
Handle, id4, 0, VK_NUMPAD5);
// HotKey Enemy Red Buff
id5 := GlobalAddAtom('
Hotkey5');
RegisterHotKey(
Handle, id5, 0, VK_NUMPAD1);
// HotKey Enemy Red Buff
id6 := GlobalAddAtom('
Hotkey6');
RegisterHotKey(
Handle, id6, 0, VK_NUMPAD2);
end;
Private Deklaration
Delphi-Quellcode:
private
{ Private declarations }
id1, id2, id3, id4, id5, id6: Integer;
procedure WMHotKey(var Msg: TWMHotKey);
message WM_HOTKEY;
HotKey Prozedur
Delphi-Quellcode:
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if (Msg.HotKey = id1) then
Button1.Click;
if (Msg.HotKey = id2) then
Button2.Click;
if (Msg.HotKey = id3) then
Button3.Click;
if (Msg.HotKey = id4) then
Button4.Click;
if (Msg.HotKey = id5) then
Button5.Click;
if (Msg.HotKey = id6) then
Button6.Click;
end;