delphi 程序内执行按键的问题

2025-02-26 03:08:23
推荐回答(1个)
回答1:

注册系统热键。
在Form的private段中声明如下:
TForm1 = (TForm)
private
{ Private declarations }
HotKeyId: Integer;
procedure wmHotkeyHandle(var Msg: TMessage); message WM_HotKey;
...

procedure TForm1.wmHotkeyHandle(var Msg: TMessage);
begin
if (Msg.lparamhi = 119) then
begin
Msg.Result := 1;
// todo: 这里执行你的代码
end;
end;
//Form创建时注册热键
procedure TForm1.FormCreate(Sender: TObject);
begin
{Register Hotkey}
Hotkeyid := GlobalAddAtom(PChar('userdefinehotkey')) - $C000;
RegisterHotKey(Handle, Hotkeyid, 0, 119);
end;
//Form释放时移除热键
procedure TForm1.FormDestroy(Sender: TObject);
begin
{UnregisterHotkey}
UnRegisterHotKey(Handle, Hotkeyid);
DeleteAtom(Hotkeyid);
end;
就这样。