问高手一下。
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public hnexthookproc As Long
Const HC_ACTION = 0
Const WH_KEYBOARD = 2
Const WH_MOUSE = 7
Public Sub UnHookKBD()
UnhookWindowsHookEx hnexthookproc
End Sub
Public Function EnableKBDHook()
hnexthookproc = SetWindowsHookEx(7, AddressOf MyKBHFunc, App.hInstance, 0)
End Function
Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If wParam = 513 Then ‘ 513 既是点击左键
UnHookKBD ‘卸载钩子函数
Unload Form1 ’ 执行到此处form1却无法卸载。form1上的flash仍在播放。
End If
End Function
以上代码在标准模块