全局热键类的多热键示例工程(VB6.0代码)

这个类很早就发布了,当时写了个很简单的单热键示例.

有朋友说最好弄个多热键的示例,于是就整了这个东东出来.



代码可能有些乱,我来说说基本的使用思路:

一,设置一个本进程句柄(frmHwnd属性)
二,增加热键(AddHotKey方法)
这个方法返回的是一个标志本组热键组合的索引,在热
键事件到来时可以简化判断.
三,启动捕捉热键循环(StartHotKeys方法)
没有使用子类化,所以用一个死循环来做一个消息泵,不
断地从消息队列里检查是否有热键消息到来.由于是死
循环,所以需要传入一个定时器用于立即返回此方法,使
调用流程能够继续下去.
四,删除热键(DelHotKey方法)
这个方法的作用是删除单个热键.相应的热键组合可以使
用GetHotKeySetting结合HotKeysCount属性来取得.
五,查询热键组合的数量(HotKeysCount属性)
定义了几组就是几,之前没有考虑到这个.
六,查询热键组合的值(GetHotKeySetting方法)
这个方法可以返回指定的组合内具体的各键状态.
七,热键按下后的事件(HotKeyPress事件)
当完成了第1,2,3步后,就可以开始捕捉热键了,这时只要
按下热键,将会触发HotKeyPress事件,事件的参数里既有
热键组合的索引,也有该组组合内各键具体的值,以方便
不同情况下的判断.
其实我觉得具体的键值好象是多余的......反正可以根
据GetHotKeySetting方法取得呀...大家自己取舍吧,反
正放它们在那里应该也不碍什么事,能省一步省一步吧-_-b
八,其它的就自己看吧.....其实这个东西又没多复杂....

原来的那个示例在这里:

../blog2/blogview.asp?logID=202&cateID=2

那里面的类有些错误,已经修正,现在的地址在这里:

下载文件 点击下载此文件

希望我的这些模块能真的方便到大家.

评论: 8 | 引用: 0 | 查看次数: 3645
Frantic
Frantic[2011-08-18 05:45 PM | ]
很有用啊,正在为这个苦恼
youke
youke[2011-02-15 01:29 PM | ]
为什么小键盘上的数字完全不显示到text里???另 上下左右不显示,小键盘上的/显示成F0....可以改进下嘛?
回复来自 admin 的评论 admin 于 2011-02-15 02:36 PM 回复
因为一般人使用热键都是大键盘上的,所以没有处理小键盘消息.
我春节电脑掉了,现在正在买新电脑,所以无法调试.
但代码比较简单,你自己尝试改改看吧
zyq0ting
zyq0ting[2009-11-04 04:40 PM | ]
功能太强大了强大得我新手都看不懂
admin
admin[2009-02-23 09:57 PM | ]
群号:10413004
书生
书生[2009-02-23 10:06 AM | ]
我要向你学习啊 有QQ群吗 :发我 邮箱zyq0ting@126.com
cnlomo
cnlomo[2008-11-28 07:35 PM | ]
二次定义热键的时候,按下ctrl键,程序检测不到,请改进一下
dabian001
dabian001[2008-10-05 12:10 PM | ]
你太有才了
千里流云
千里流云[2008-10-01 07:12 PM | ]
热键这东西,很麻烦...