VB注册热键问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:57:22
帮我看看着代码有没有问题

我一运行VB就直接关闭

Private Sub Form_Load()
Dim Ret As Long
'注册热键Alt+F1
idHotKey = 1
Modifiers = MOD_ALT '定义组合键为ALT键
Ret = RegisterHotKey(Me.hwnd, idHotKey, Modifiers, vbKeyF1)
If Ret = 0 Then
MsgBox "注册热键Alt+F1失败!"
End If
'注册热键Alt+F2
idHotKey = 2
Modifiers = MOD_ALT '定义组合键为ALT键
Ret = RegisterHotKey(Me.hwnd, idHotKey, Modifiers, vbKeyF2)
If Ret = 0 Then
MsgBox "注册热键Alt+F2失败!"
End If
'取窗口处理过程地址
preWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
'设置新的处理过程
SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf wndproc 'AddressOf Wndproc
End Sub
L (455761411) 7:44:09
Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_HOTKEY Then

检测热键是否按下,最好用PeekMessage函数。

注册热键时,最好把RegisterHotKey函数的第二个参数设为&HBFFF&以上的数。

程序结束时,应用UnregisterHotKey注销热键。

上面三条只是建议,不一定可以。