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

 我来答
DoramiHe
2018-06-09 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
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;

以前写的 改下就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式