Systemweiten HotKey definieren |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Will man auf Tastatureingaben auch dann reagieren, wenn das eigene Fenster nicht angewählt oder minimiert ist, so hilft ein systemweiter Hotkey.Die ID ist eindeutig und im Bereich 0x0000 bis 0xBFFF. Die verschiedenen Hotkeys werden im folgenden mit den ID's ID, ID+1 bis ID+x bezeichnet.
TWMHotkey = record
Msg: Cardinal;
idHotKey: Word;
Modifiers: Integer;
VirtKey: Integer;
end;
const ID = $FF;
type
TForm1 = class(TForm)
...
private
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
end;
...
procedure TForm1.WMHotKey(var Msg: TWMHotkey);
begin
case Msg.IdHotKey of
ID: caption:='alles klar';
ID+1: caption:='es ist immer noch alles klar';
// Abhängig von der ID wird entschieden, was getan werden soll.
end;
inherited;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
var ok: longbool;
begin
ok:=RegisterHotKey(Form1.Handle, ID, MOD_Alt, Ord('Q'));
(*
Weitere Möglichkeiten sind Mod_control und mod_shift.
*)
if not ok then ... // Irgendwas war wohl nicht in Ordnung.
ok:=RegisterHotKey(Form1.Handle, ID+1, MOD_control, vk_f1);
...
end;