我的两个API调用是:
Private Declare PtrSafe 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 PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long我的钩子键盘功能:
Public Sub HookKeyboard()
Dim ThreadID As Long
ThreadID = GetCurrentThreadId
KeyboardHandle = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeyboardCallback, Application.Hinstance, ThreadID)
Call HookedInitalize
End Sub不知为什么我的钩子没抓到。如果我用0替换ThreadID,表示钩子是系统范围的,那么钩子就会捕获。但是,当我试图将其限制在应用范围内时,它并没有被捕获。
https://stackoverflow.com/questions/54741665
复制相似问题