详解VB中系统热键使用

本文介绍了在VB中如何使用API函数设置和处理系统热键。通过SetWindowLong、GetWindowLong、CallWindowProc、RegisterHotKey和UnregisterHotKey等函数,以及自定义消息处理函数来捕获和响应WM_HotKey消息,实现Alt+N作为隐藏/显示窗口的热键。文章提供了一个具体的实现示例,并引用了虚拟键码和WM_HotKey消息结构的相关资料。
摘要由CSDN通过智能技术生成

最近弄这个很头疼了,没多少基础,不好理解,现在弄清楚了,这里总结一下.

先说要用到的API

SetWindowLong
GetWindowLong  '用来获取/设置窗口的消息处理函数地址,为什么后面会说到

上面两个函数都要用到GWL_WNDPROC = (-4)这个常数

CallWindowProc

RegisterHotKey
UnregisterHotKey '用来注册,释放快捷键(因为就算程序关了,系统自己不会释放程序注册了的快捷键,会造成其他程序注册相同快捷键的时候失败)


因为VB本身不处理热键消息,有关此消息请参考MSDN上WM_HotKey的说明

所以,我们要自己写消息处理函数来处理热键消息,

窗体的消息处理函数,是一个名叫WindowProc的回调函数,每个窗口都有一个这样的函数用来处理各种消息,

因为它要处理各种不同种类的消息进行不同的判断,所以一般是一个相当大的函数,不过我们不需要重写它,毕竟这是很耗时间的事情,

我们只需要增加一点点专门处理热键消息的过程就可以了,把其他的消息交给原来窗口的WindowProc,这样就可以省很多事.

但是,VB本身对于WindowProc是在编译的时候添加进去的,没有给我们留下编辑的余地,所以,得用其他变通的方法解决.

这里的思路是:先让自己写的过程收到消息判断是否是热键消息,然后再进行进一步判断和需要的过程调用,如果不是热键消息,就把消息归还给原来的窗口.

下来说具体的实现例子

以添加一个Alt+N的热键用来隐藏/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值