如何定义全局快捷键

cd20102010 2010-11-18 07:39:13
如何在程序中定义两个系统全局快捷键,一个为Ctrl+Shift+Z,另一个为Shift+Enter,并且无论当按Ctrl+Shift+Z时,还是按Shift+Enter时,都能正确执行他们事先定义好的代码动作。
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
taoran12 2010-11-27
  • 打赏
  • 举报
回复
学习
wlm_8888 2010-11-27
  • 打赏
  • 举报
回复
定义函数接收热键
procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;



procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
if (Msg.LparamLo = MOD_CONTROL) and (Msg.LParamHi = 77) or (msg.LParamHi = vk_F7) then // 假设热键为CTRL+M
begin
... ...
end;
end;
wlm_8888 2010-11-27
  • 打赏
  • 举报
回复
//注册系统热键 CTRL+M
HotKeyId := GlobalAddAtom('show') - $C000;
RegisterHotKey(Self.Handle, hotkeyid, MOD_CONTROL, 77);

//注册系统热键F7
HotKeyId1 := GlobalAddAtom('next') - $C000;
RegisterHotKey(Self.Handle, hotkeyid1, 0, VK_F7);

//在程序最后释放系统热键
UnRegisterHotKey(self.handle, HotKeyId);
UnRegisterHotKey(self.handle, HotKeyId1);
DeleteAtom(hotKeyID);
DeleteAtom(hotKeyID1);


注:RegisterHotKey为注册热键函数,UnRegisterHotKey为热键释放函数,GlobalAddAtom为全局原子表添加唯一原子


lyhoo163 2010-11-23
  • 打赏
  • 举报
回复
只能用
RegisterHotKey
cigarette0123 2010-11-23
  • 打赏
  • 举报
回复
up........
Mit1208 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
RegisterHotKey
[/Quote]

ImJaden 2010-11-22
  • 打赏
  • 举报
回复
RegisterHotKey 应该只有这个方法了吧。学习
bdmh 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
RegisterHotKey
[/Quote]
cnzdgs 2010-11-21
  • 打赏
  • 举报
回复
RegisterHotKey
whisht 2010-11-18
  • 打赏
  • 举报
回复
hook....

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧