API 的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 21:34:37
为了判断按下的键,我建立了如下一个模块:

Public Const VK_SHIFT = &H10
Public Const VK_LSHIFT = &HA0
Public Const VK_RSHIFT = &HA1
Public Const VK_LCONTROL = &HA2
Public Const VK_RCONTROL = &HA3
Public Const WH_KEYBOARD = 2

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook_
As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As_
Any) As Long

Public Declare Function SetWindowsHookEx Lib "user32"_
Alias "SetWindowsHookExA" (ByVal kdHook As Long, ByVal lpfn As_
Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal_
hHook As Long) As Long

Public Declare Function GetKeyboardState Lib "user32"_
(pbKeyState As Byte) As Long

Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey_
As Long) As Integer

Public Declare Funct

hMod[in] Handle to the DLL containing the hook procedure pointed to by the lpfn parameter. The hMod parameter must be set to NULL if the dwThreadId parameter specifies a thread created by the current process and if the hook procedure is within the code associated with the current process. ----------------hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf_ KeyboardProc, App.hInstance, App.ThreadId) 要 改为hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf_ KeyboardProc, 0, App.ThreadId)

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook_
As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As_
Any) As Long

ByVal : 在传参数的时候加上

'在这一句
KeyboardProc = CallNextHookEx(ByVal hHook, ByVal idHook, ByVal wParam,_
ByVal lParam)