Entwickler-Ecke

Windows API - Hotkey funktioniert nicht!


pesi - Mo 06.07.09 13:14
Titel: Hotkey funktioniert nicht!
Hi,

kann mir jemand sagen was hier falsch läuft???
Ich versuche einen Hotkey zu setzen und anschließend abzufangen.

Das setzen scheint auch zu funktionieren, habe hier einfach mal STRG+F genommen, da merkt man ziemlich gut ob die Tastenkombination abgefangen wird oder nicht - und was soll ich sagen... STRG+F in seiner "normalen" Funktion (Suchen) geht nicht mehr, aber mein Programm reagiert leider auch nicht entsprechen der WMHotKey-Routine.

WAS MACH ICH FALSCH???

Danke & Gruß Peter
P.S.: D5 Prof. / Turbo Delphi


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
var
  Form2: TForm2;
  id1:integer;
  test:string;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
showmessage(test);
end;

procedure TForm2.FormCreate(Sender: TObject);
Const
  MOD_ALT = 1;
  MOD_CONTROL = 2;
  MOD_SHIFT = 4;
  MOD_WIN = 8;
  VK_F = 70;
begin
// Hotkey registrieren
  id1 := GlobalAddAtom('Hotkey1');
  RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F);
end;

procedure TForm2.WMHotKey(var Msg: TWMHotKey);
begin
  // Auf Hotkey reagieren
Form2.Label1.Caption:='hallo';
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 06.07.2009 um 13:17


Fienix - Mo 06.07.09 13:31

Sieht eigentlich gut aus, so hab ich es auch und es rennt.

Wie hast du dein WMHotKey deklariert?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Aber warum setzt du das MOD_CONTROL selber? :?


pesi - Mo 06.07.09 13:38

Danke Fienix, das Wörtchen "deklariert" hat mich dann auch direkt zur Lösung gebracht. Da lag der Fehler, jetzt isses korrekt unter "private" so deklariert

Delphi-Quelltext
1:
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;                    

und dann geht´s natürlich auch.

Danke für den entscheidenden Hinweis!!!!!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt