我刚开始学钩子,写了下边的代码。
标准模块中:
Public 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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WH_JOURNALRECORD = 0
Public Const HC_ACTION = 0
Public Function HookFunc(ByVal ncode As Long, _
                            ByVal wParam As Long, _
                            ByVal lParam As Long) As LongIf ncode >= 0 Then
    If ncode = HC_ACTION Then
        Text1.Text = wParam
    End If
    
End If
Call CallNextHookEx(F_hook, ncode, wParam, lParam)End Function
窗体中:
Dim F_hook As LongPrivate Sub Command1_Click()
F_hook = SetWindowsHookEx(0, AddressOf HookFunc, 0, App.ThreadID)
Label1.Caption = F_hook  '测试是不是返回正确的钩子
End SubPrivate Sub Command2_Click()
UnhookWindowsHookEx F_hook
End Sub
为什么每回label1的caption总是返回0,就是说没有生成钩子。
请教高人
不是说日志钩子能用在vb中吗?