知识大全 应用程序敏感键的实现

Posted 消息

篇首语:才华是刀刃,辛苦是磨刀石。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 应用程序敏感键的实现相关的知识,希望对你有一定的参考价值。

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

  一 敏感键的设置

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

  BOOLRegisterHotKey(  HWNDhWnd 响应该敏感键的窗口句柄  Intid 该敏感键的唯一标示符  UINTfsModifiers 该敏感键的辅助按键  UINTvk该敏感键的键值  );

   其中敏感键的唯一标示符在Window中规定应用程序的取值范围为 x 到 xBFFF之间 动态链接库的取值范围为 xC 到 xFFFF之间 为了保证其唯一性建议使用GlobalAddAtom函数来设置敏感键的唯一标示符 需要注意的是GlobalAddAtom还回的值是在 xC 到 xFFFF范围之间 为满足RegisterHotKey的调用要求 如果是在应用程序中设置敏感键可以利用GlobalAddAtom还回值减去 xC

   敏感键的辅助按键包括Mod_Ctrl Mod_Alt Mod_Shift 对于Windows兼容键盘还支持Windows键 即其键面上有Windows标志的那个键 其值为Mod_win

   在Delphi中建立一个 NewApplication 在Tform 中的Private段中加入如下代码

  private  Privatedeclarations  hotkeyid:integer;  procedureWMhotkeyhandle(varmsg:Tmessage);  messagewm_hotkey;响应敏感键按键消息  在FormCreate事件中加入如下代码  …  hotkeyid:=GlobalAddAtom(pchar  ( UserDefineHotKey )) $C ;  减去$C 是为了保证取值范围的限制  registerhotkey(handle hotkeyid   MOD_CONTROLormod_Altt $ );  敏感键为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;过程 它的代码

  应用程序敏感键的实现( ) 如下(这里只是简单地把窗口最前面显示)  procedureTForm Wmhotkeyhandle  (varmsg:Tmessage);  begin  if(msg LParamHi=$ )and  (msg lparamLo=MOD_CONTROLormod_Alt)then  begin  msg Result:= ;该消息已经处理  application BringToFront;  把窗口最前面显示  end;  end;

  三 敏感键的释放

   在应用程序退出来之前应当把你所设置的敏感键释放掉 以释放其所占有的系统资源 这里需要调用两个WindowsAPI函数UNREGISTERHOTKEY 它的调用格式如下:

cha138/Article/program/Delphi/201311/24835

相关参考

知识大全 oracle数据库中sql基础

  一关系数据库的一些概念    主键的值一般不可以改变    外键指向另一个表或本表的主键或唯一键的字段外键的值一定要和某一主键相同或者为空    数据库对像表视图序列索引同义词程序(进程函数sql

知识大全 gridview获取主键的值

  在GridView_RowCommand中获取主键的值  protectedvoidGridView_RowCommand(objectsenderGridViewCommandEventArgs

知识大全 Oraclesqlplus中方向键、退格键的使用

Oraclesqlplus中方向键、退格键的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Oracle中非默认方式创建外键的使用

Oracle中非默认方式创建外键的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  创建外键约

知识大全 禁止鼠标右键的几种方法

cha138/Article/program/Java/JSP/201311/19657

知识大全 Oracle外键的相关约束中级联删除的方案

Oracle外键的相关约束中级联删除的方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL

机械设备安装时键的装配应符合要求有哪些?

一、键的表面应无裂纹、浮锈、凹痕、条痕及毛刺,键和键槽的表面粗糙度、平面度和尺寸在装配前均应检验。  二、普通平键、导向键、薄型平键和半圆键,两个侧面与键槽应紧密接触,与轮毂键槽底面不接触。  三、普

机械设备安装时键的装配应符合要求有哪些?

一、键的表面应无裂纹、浮锈、凹痕、条痕及毛刺,键和键槽的表面粗糙度、平面度和尺寸在装配前均应检验。  二、普通平键、导向键、薄型平键和半圆键,两个侧面与键槽应紧密接触,与轮毂键槽底面不接触。  三、普

知识大全 Oracle与SqlServer中获取所有字段、主键、外键的sql语句

Oracle与SqlServer中获取所有字段、主键、外键的sql语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

硫辛酸的给药说明

硫辛酸的给药说明1.本药与糖溶液、林格液、含二硫键的溶液以及可与硫基或二硫键反应的溶液属配伍禁忌。2.本药口服给药时宜空腹服用。3.本药活性成分对光敏感,应在即将使用前将安瓿从盒内取出。配好的输液用铝