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?"热键"

结束?潜水艇