搭建论坛《搭建之星》论坛经验交流 → [求助]系统热键的注销和注册如何实现?


  共有3183人关注过本帖树形打印

主题:[求助]系统热键的注销和注册如何实现?

帅哥哟,离线,有人找我吗?
ydj8
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:学员 帖子:20 积分:137 威望:0 精华:0 注册:2004-3-12 10:58:55
[求助]系统热键的注销和注册如何实现?  发帖心情 Post By:2005-8-12 9:36:25

我想做一个用自己定义的热键(如Win+↑)来控制音量的增加,有时候可以实现,但是有时候不可以。肯定是系统热键的注销和注册出了问题。请高手帮帮忙(最好给个实例)。先谢谢了。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
春林
  2楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:技师 帖子:739 积分:1321 威望:3 精华:2 注册:2003-9-19 17:24:58
  发帖心情 Post By:2005-8-12 10:36:25

这个可以,但是最好不要用“win”键,因为这个键在系统中有特殊意义,所以容易发生冲突。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
洪滨
  3楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 大地软件
等级:版主 帖子:4386 积分:9920 威望:5 精华:9 注册:2002-9-9 7:55:12
  发帖心情 Post By:2005-8-12 10:57:50

系统热键 在项目中某些操作也可以通过键盘按键来完成。系统热键构件就提供了用键盘操作代替鼠标操作的功能。象Windows系统中按下’Ctrl+space’来打开输入法,按下’Alt+F4’等功能,利用系统热键构件即可轻松实现。 图 标: 构件类型:不可视 重要属性 l 基本键 枚举型,通常我们把键盘上除了“shift”、“ctrl”、“alt”、“win”之外的按键称为基本键。 提示:在基本键使用中如果用到‘*、/、+、-、.’这五个按键时,在选取中没有它们的符号表示,它们分别是用英文来代表的,对应英文是‘multiply、divide、add、subtract、decimal’。 l 组合键 集合型,通常我们把“shift”、“ctrl”、“alt”、“win”键称之为组合键。由组合键与基本键联合使用。如:组合键“Alt”与基本键“F4”同时按下时,关闭窗口。 l 允许 布尔型,设置系统热键是否允许注册到系统。默认值为“真”。如果想使用热键完成某些操作,就必须把热键注册到系统中。如果值为“假”,即使用户定义了系统热键,由于没有注册到系统中,定义的热键将不起作用。 注意:由于在Windows中已然预先定义了一些热键,所以用户自行定义的热键不应与系统定义的热键相一致。如果相同热键功能将以系统定义为准。 重要方法 l 注销当前热键 执行此方法时,将当前用户定义的热键从系统中注销。 注意:在动态改变系统热键设置时,应首先注销预先的设置。如按“1”键代表某种操作,这时想用“2”键取代“1”键,先要执行方法注销当前热键。 l 注册当前热键 执行此方法时,将当前用户定义的热键注册到系统中。 注意:用户自行定义的热键必须注册到系统中才能使用。 l 允许ctrl+alt+del 执行此方法时,允许按键“ctrl+alt+del”做为热键使用。 l 禁止ctrl+alt+del 执行此方法时,禁止按键“ctrl+alt+del”做为热键使用。 注意:众所周知,“ctrl+alt+del”三个键组合使用,在系统中已被定义为关闭运行程序或重新启动操作系统功能。如果在项目中将这三个键做为热键定义后果可想而知。 重要事件 l 热键按下 当热键按下时,执行此事件。 实例:在前面围绕着热键的定义、注册与注销做了一番说明,下面我们结合实际的例子阐明系统热键的使用。 前面讲过了,用户自行定义的热键必须注册到系统中才能使用。那么是不是每次定义完热键后都要执行方法“注册热键”呢?不是的,因为只要 “允许” 属性值为“真”时,运行当前项目,即把定义的热键注册到系统中了。换句话说,“允许”也就是“允许注册”的意思。 下面我们结合实例来说明。 在项目窗口上,放上一个进度标尺和一个系统热键构件。例子要实现的目的是当按下热键时,令进度标尺的进度增加。在系统热键的基本键与组合键属性中,分别选择“L”和“CTRL”键,意及当“CTRL”和“L”键同时按下一次时,进度标尺的进度就增加1点。 热键按下时,事件设置如图1所示 图1 项目运行时,当“CTRL”和“L”键同时按下一次,将看到进度标尺的进度将遂渐增加。 不知您是否突发过这样的想法,在项目运行时改变系统热键的设置。即当项目运行一段时间后,这时想用“ALT”键取代“CTRL”键……它的实现也很简单,在项目窗口上增加一个普通按钮,当普通按钮按下时,事件设置如图2所示 图2 如果您仔细阅读了前文马上会指出,按照这样的设置,在项目运行时,是不能实现利用“ALT”键取代“CTRL”键的。原因有二,其一是,“CTRL”和“L”键没有从系统中注销;其二是,“ALT”和“L”键没有注册到系统中。 正确的事件设置如图3所示 图3 解释:第一条命令将“CTRL”和“L”键从系统中注销;第二、三条命令将组合键“CTRL”设为无;第四、五条命令将“ATL”键设为有;第六条命令将组合键“ALT”与基本键“L”注册到系统中。 如果您能灵活运用的话,下边的事件设置也是对的,如图4所示


★大地软件论坛http://jsrccb.k.zhanqunabc.com/★搭建之星QQ群

号:31757462 微信号:wwwddkj

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[求助]系统热键的注销和注册如何实现?








签名