DELPHI如何注册系统热键
2006-04-04 22:10
405 查看
[align=center]用DELPHI如何注册系统热键 (2003年10月21日) [/align] |
发表日期:2003-3-1 文章作者:未知 已浏览: 357 次 var i=9; function chgsize(act) { if (act=="add") {i++;} else {i--;} document.styleSheets[0].rules[0].style.fontSize=i+"pt"; document.styleSheets[0].rules[1].style.fontSize=i+1+"pt"; } 字体大小:[- +] |
本站更新 分类:系统 作者:龙门刀客 推荐: 阅读次数:393 (http://www.tommstudio.com/newclub30/) 用到3个API函数 BOOL RegisterHotKey( HWND hWnd, //响应该热键的窗口句柄 Int id, //该热键的唯一标识 UINT fsModifiers, //该热键的辅助按键 UINT vk //该热键的键值 ); 为了得到唯一标识,我们还将用到另一个API函数 ATOM GlobalAddAtom( LPCTSTR lpString //自己设定的一个字符串 ); 因为我们还要在程序退出的时候,消除这个热键, 所以需要声明一个全局变量: HotKeyId: Integer; 第一步: 在窗口的create事件中,加入以下代码 HotKeyId := GlobalAddAtom(‘MyHotKey’) - $C000; 注: HotKeyId的合法取之范围是0x0000到0xBFFF之间, GlobalAddAtom函数得到的值 在0xC000到0xFFFF之间,所以减掉0xC000来满足调用要求。 第二步: 在上面的代码下面加入: RegisterHotKey(Handle, hotkeyid, MOD_ALT, VK_F8); 热键的辅助按键包括Mod_Ctrl 、Mod_Alt、Mod_Shift,对于Windows兼容键盘还支持Windows 键,即其键面上有Windows标志的那个键,其值为Mod_win。 上面 的代码注册了一个热键:ALT+F8。当然如果你希望象TAKEIT那样,只用F8, 就这么写: RegisterHotKey(Handle, hotkeyid, 0, VK_F8); 注:handle是一个特殊的变量,它表示当前窗口的句柄。 这个函数你应该能句举一反三了吧。 原理: 一旦热键设置成功,在程序应用过程中如果有相应的键被按下,Windows系统都会给你的应 用程序发送一个消息WM_HOTKEY,不管你的应用程序是否为当前活动的。其中WM_HOTKEY消 息的格式为: idHotKey = (int) wParam; // 该参数在设置系统级的热键有用,一般不予使用 fuModifiers = (UINT) LOWORD(lParam); //热键的辅助按键 uVirtKey = (UINT) HIWORD(lParam); //热键的键值 第三步: 注册了热键,就该写下响应代码了。 首先,在程序头部分的private段中加入声明 (作用是声明这个过程,和声明变量类似。 关于如何声明函数、过程,请请参考各自的帮助文件或其它资料): procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY; 然后在程序中加入如下代码: procedure Tfmain.HotKeyDown(var Msg: Tmessage); begin if (Msg.LparamLo = MOD_ALT) AND Msg.LParamHi = VK_F8 then // 假设热键为ALT+F8 begin end; end; 最后一步: 在窗口的close事件中加入 UnRegisterHotKey(handle, HotKeyId); //注销HotKey, 释放资源。 |
相关文章推荐
- 用DELPHI如何注册系统热键
- 用DELPHI如何注册系统级热键
- 如何注册系统热键
- 【原创】vc 如何注册系统热键
- vc 如何注册多个系统热键
- vc 如何注册系统热键
- 如何注册系统热键
- 注册系统热键
- Android注册会员系统返回上一步时如何保存信息
- C#注册系统热键
- delphi 多热键注册
- 如何将USBKey中的证书注册到Windows系统中、分享一个 证书 C++安装
- 解决方法:对性能监视器计数器注册表值执行系统配置检查失败。有关详细信息,请参阅自述文件或 SQL Server 联机丛书中的“如何在 SQL Server 2005 中为安装程序增加计数器注册表项值”
- windows下注册系统热键及系统托盘功能
- Android Binder Mechanism (4) -- 如何使用已注册的系统Service
- 在WPF中如何注册热键(转)
- 如何将TOMCAT注册成系统服务
- VC如何注册、屏蔽全局键盘热键
- 如何把木马注册为系统服务
- Delphi全局热键的注册