VB设置多个全局热键帮助修改。
选项?明确的
程序启动时注册功能热键F12。
私人?Sub?Form_Load()
preWinProc?=?GetWindowLong(Me.hWnd,?GWL_WNDPROC)
SetWindowLong?Me.hWnd,?GWL_WNDPROC,?地址?WndProc
RegisterHotKey?Me.hWnd,?1,?MOD_ALT,?VbKeyF12 '按下ATL+F12。
RegisterHotKey?Me.hWnd,?2,?MOD_CONTROL,?VbKeyF12 '按CTRL+F12。
RegisterHotKey?Me.hWnd,?3,?MOD_SHIFT,?VbKeyF12 '按SHIFT+F12。
RegisterHotKey?Me.hWnd,?4,?MOD_WIN,?VbKeyF12 '按WINDOWS键+F12。
RegisterHotKey?Me.hWnd,?5,?0,?VbKeyF12 '直接按F12。
RegisterHotKey?Me.hWnd,?6,?MOD_ALT?还是?MOD_CONTROL,?'按ALT+CTRL+F12。
结束?潜水艇
当程序关闭时,取消注册的热键。
私人?Sub?Form_Unload(取消?作为?整数)
SetWindowLong?Me.hWnd,?GWL_WNDPROC,?preWinProc
UnregisterHotKey?Me.hWnd,?1 '取消系统级热键,释放资源。
UnregisterHotKey?Me.hWnd,?2 '取消系统级热键,释放资源。
UnregisterHotKey?Me.hWnd,?3 '取消系统级热键,释放资源。
UnregisterHotKey?Me.hWnd,?4 '取消系统级热键,释放资源。
UnregisterHotKey?Me.hWnd,?5 '取消系统级热键,释放资源。
UnregisterHotKey?Me.hWnd,?6 '取消系统级热键,释放资源。
结束?潜水艇
使用以下代码添加一个标准模块
选项?明确的
在窗口结构中设置指定窗口的信息。
公共?申报?功能?SetWindowLong?Lib?“用户32”?别名?“SetWindowLongA”?(ByVal?hWnd?作为?龙,?ByVal?nIndex?作为?龙,?ByVal?dwNewLong?作为?龙)?作为?长的
从指定窗口的结构中获取信息。
公共?申报?功能?GetWindowLong?Lib?“用户32”?别名?“GetWindowLongA”?(ByVal?hWnd?作为?龙,?ByVal?nIndex?作为?龙)?作为?长的
运行指定的进程。
公共?申报?功能?CallWindowProc?Lib?“用户32”?别名?“CallWindowProcA”?(ByVal?lpPrevWndFunc?作为?龙,?ByVal?hWnd?作为?龙,?ByVal?味精?作为?龙,?ByVal?wParam?作为?龙,?ByVal?lParam?作为?龙)?作为?长的
向系统注册一个指定的热键。
公共?申报?功能?RegisterHotKey?Lib?“用户32”?(ByVal?hWnd?作为?龙,?ByVal?ID?作为?龙,?ByVal?fsModifiers?作为?龙,?ByVal?vk?作为?龙)?作为?长的
取消热键,释放被占用的资源
公共?申报?功能?UnregisterHotKey?Lib?“用户32”?(ByVal?hWnd?作为?龙,?ByVal?ID?作为?龙)?作为?长的
以上五个API函数是注册系统级热键所必需的,具体实现过程如下图所示。
常数
公共?Const?MOD_ALT?=?& ampH1
公共?Const?MOD_CONTROL?=?& amp氘
公共?Const?MOD_SHIFT?=?& ampH4
公共?Const?MOD_WIN?=?& ampH8Public?Const?WM _热键?=?& ampH312
公共?Const?GWL WNDPROC?=?(-4)
定义系统的热键,原来的中断标记,和隐藏的项目句柄。
公共?preWinProc?作为?龙,?MyhWnd?作为?龙,?乌维特基?作为?长的
热键拦截过程
公共?功能?WndProc(ByVal?hWnd?作为?龙,?ByVal?味精?作为?龙,?ByVal?wParam?作为?龙,?ByVal?lParam?作为?龙)?作为?长的
如果?味精?=?WM _热键?然后呢?如果热键标志常量被拦截。
热键按下?' WParam '执行隐藏鼠标指向的项目。
结束?如果
如果不是热键,或者不是我们设置的热键,就把控制权还给系统,继续监控热键。
WndProc?=?CallWindowProc(preWinProc,?hWnd,?味精,?wParam,?lParam)
结束?功能
最关键的项目隐藏过程
公共?Sub?hot keypress(ByVal?id?作为?龙)
MsgBox?“按数字”?& amp?id?& amp?"热键"
结束?潜水艇