Delphi编写的服务中怎么实现定义全局快捷键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi编写的服务中怎么实现定义全局快捷键相关的知识,希望对你有一定的参考价值。

参考技术A private
aatom:atom;
c:atom;
procedure hotkey(var msg:tmessage);message wm_hotkey; //定义全局热键消息事件
Private declarations
public
Public declarations
end;

var
Form1: TForm1;

a,b:integer;
implementation

$R *.dfm

procedure TForm1.FormCreate(Sender: TObject);
begin
aatom:=globaladdatom('hotkey');
c:=globaladdatom('hotkey1'); //全局热键ID
RegisterHotKey(handle,aatom,MOD_ALT,vk_f12); //注册全局热键
RegisterHotKey(handle,c,MOD_ALT,vk_f11);
end;
procedure TForm1.hotkey(var msg:tmessage); //热键响应事件

begin
if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then //全局热键 ALT+F12
begin
a:=a+1;
a:=a mod 2;
if a=1 then
checkbox1.Checked:=true
else
checkbox1.Checked:=false
end;
if (msg.LParamHi=VK_F11) and (msg.LParamLo=MOD_ALT) then
b:=b+1;
b:=b mod 2;
if b=1 then
checkbox2.Checked:=true
else
checkbox2.Checked:=false

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
globalDeleteatom(aatom);
globalDeleteatom(c);
end;

以前写的 改下就行了

以上是关于Delphi编写的服务中怎么实现定义全局快捷键的主要内容,如果未能解决你的问题,请参考以下文章

delphi中怎么把tfrom1的变量赋值给tfrom2的变量

Delphi 中全局变量无法被修改

C# WinForm如何实现全局快捷键?

编程IDE中ctrl+shift+F无法实现全局搜索解决办法

VUE3.0 使用全局快捷键

VUE3.0 使用全局快捷键