Einzelnen Beitrag anzeigen

dYnAm1c

Registriert seit: 26. Jun 2011
23 Beiträge
 
#1

registerHotKey funktioniert nicht

  Alt 26. Jun 2011, 22:20
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;
  Mit Zitat antworten Zitat