进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> DLEPHI -> 文章内容  
应用程序敏感键的实现

----在一个应用程序内部菜单、部件都可以设置敏感键。如在菜单中一般用Alt+F进
入“文件”之类的子菜单。另外我们在桌面上设置的快捷方式里的快捷键,无论你任何
时候按下你所设置的快捷键就会启动相应的应用程序。在多个正在运行的应用程序中如
何利用一个按键动作迅速地回到你所需要的应用程序呢?这就需要利用敏感键
(HOTKEY)的技术来实现。本文利用Delphi3.0开发工具来阐述该技术在应用程序的实
现方法。

一、敏感键的设置

----在windowsApi中有一个函数RegisterHotKey用于设置敏感键,它的调用方式如下:

BOOLRegisterHotKey(
HWNDhWnd,响应该敏感键的窗口句柄
Intid,该敏感键的唯一标示符
UINTfsModifiers,该敏感键的辅助按键
UINTvk该敏感键的键值
);
----其中敏感键的唯一标示符在Window中规定应用程序的取值范围为0x0000到0xBFFF之
间,动态链接库的取值范围为0xC000到0xFFFF之间。为了保证其唯一性建议使用
GlobalAddAtom函数来设置敏感键的唯一标示符。需要注意的是GlobalAddAtom还回的值
是在0xC000到0xFFFF范围之间,为满足RegisterHotKey的调用要求,如果是在应用程序
中设置敏感键可以利用GlobalAddAtom还回值减去0xC000。
----敏感键的辅助按键包括Mod_Ctrl、Mod_Alt、Mod_Shift,对于Windows兼容键盘还
支持Windows键,即其键面上有Windows标志的那个键,其值为Mod_win。

----在Delphi中建立一个“NewApplication”,在Tform1中的Private段中加入如下
代码

private
{Privatedeclarations}
hotkeyid:integer;
procedureWMhotkeyhandle(varmsg:Tmessage);
messagewm_hotkey;响应敏感键按键消息
在FormCreate事件中加入如下代码

hotkeyid:=GlobalAddAtom(pchar
(“UserDefineHotKey”))-$C000;
减去$C000是为了保证取值范围的限制
registerhotkey(handle,hotkeyid,
MOD_CONTROLormod_Altt,$41);
敏感键为ctrl+Alt+A

二、敏感键的响应
----一旦敏感键设置成功,在程序应用过程中如果有相应敏感键被按下,Windows系统都会给
你的应用程序发送一个消息WM_HOTKEY,不管你的应用程序是否为当前活动的。其中WM_HOTKEY
消息的格式为:

idHotKey=(int)wParam;
该参数在设置系统级的敏感键有用,一般不予使用
fuModifiers=(UINT)LOWORD(lParam);
敏感键的辅助按键
uVirtKey=(UINT)HIWORD(lParam);
敏感键的键值
----因为Windows系统只是把一个WM_HotKey的消息发送给应用程序,要完成具体的事情需要一
个消息处理程序,也就是上面Private段里的
procedureWMhotkeyhandle(varmsg:Tmessage);messagewm_hotkey;过程,它的代码
如下(这里只是简单地把窗口最前面显示)
procedureTForm1.Wmhotkeyhandle
(varmsg:Tmessage);
begin
if(msg.LParamHi=$41)and
(msg.lparamLo=MOD_CONTROLormod_Alt)then
begin
msg.Result:=1;该消息已经处理
application.BringToFront;
把窗口最前面显示
end;
end;
三、敏感键的释放
----在应用程序退出来之前应当把你所设置的敏感键释放掉,以释放其所占有的系统资源,这里
需要调用两个WindowsAPI函数UNREGISTERHOTKEY,它的调用格式如下:

BOOLUNREGISTERHOTKEY(
HWNDHWND,与敏感键关联的窗口句柄
INTID敏感键的标示符
);
也就是说只要在FormClose事件中加入如下代码

unregisterhotkey(handle,hotkeyid);
DeleteAtom(HotKeyID);

----到这里为止,你应当对敏感键技术有了全面的了解,以上的例子相当简单同时也没有提供必
要的调用成功检测,可以根据具体情况加以完善,希望对你的开发过程会有所帮助.

在百度中搜索:应用程序敏感键的实现
在Google中搜索:应用程序敏感键的实现
在Yahoo中搜索:应用程序敏感键的实现

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]
下一篇文章:C#编码好习惯

 相关文章    最新文章
· 应用无忧 教你创建安全的恢复U盘
· [图文] Excel2007中“内容重排”功能的应用..
· CSS高级应用:定义列表的特殊用法
· [图文] WPS演示中应用荧光笔的使用技巧
· 网页制作技巧:em与px的区别及应用
· 从Word工具栏中启动应用程序
· Gartner IE8将让大量企业Web应用显示不正..
· Office语音识别应用实例:设置文本格式
· Excel的HYPERLINK函数应用解疑一则
· 怎样应用Excel 2007中表样式而不新插入表..
 
· 小技巧:如何用Delphi创建快捷方式
· Delphi版模仿熊猫烧香病毒核心源码
· Delphi“判断服务器路径”与“清空日志文..
· 应用程序敏感键的实现
· 用Delphi实现远程屏幕抓取
· 用DEPHI为应用软件建立注册机制
· 利用Hook技术实现键盘监控
· Delphi编程实现Ping操作
· 通用Delphi数据库输入控件DBPanel的实现
· 用Delphi开发屏幕保护预览程序

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)