FORM: 
'安装一个钩子过程,监视鼠标消息 
Private Const WH_MOUSE As Long = 7 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function SetWindowsHookEx Lib "user32.dll" 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.dll" (ByVal hHook As Long) As Long 
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long 
Private Sub Form_Load() 
Dim PID As Long, TID As Long, F As Long 
Shell "notepad" 
F = FindWindow("Notepad", "无标题 - 记事本") 
TID = GetWindowThreadProcessId(F, PID) 
hHook = SetWindowsHookEx(WH_MOUSE, AddressOf MouseProc, App.hInstance, TID) 
End Sub Private Sub Form_Unload(Cancel As Integer) 
Call UnhookWindowsHookEx(hHook) 
End Sub 模块: Option Explicit 
Private Const WM_MOUSEMOVE As Long = &H200 
Private Const WM_MOUSEWHEEL As Long = &H20A Private Const HC_ACTION As Long = 0 
Private Const HC_NOREMOVE As Long = 3 Private Type POINTAPI 
    pX As Long 
    pY As Long 
End Type Private Type MOUSEHOOKSTRUCT 
    pt As POINTAPI 
    hwnd As Long 
    wHitTestCode As Long 
    dwExtraInfo As Long 
End Type Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Declare Function CallNextHookEx Lib "user32.dll" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByRef lParam As Any) As Long Public hHook As Long Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
'wParam 参数说明了鼠标消息的标识 
'lParam 参数为一个指向 MOUSEHOOKSTRUCT 结构的指针 
Dim MHS As MOUSEHOOKSTRUCT 
Select Case nCode 
    Case Is < 0 
    Case HC_ACTION 'wParam 和 lParam 参数包含了鼠标消息 
        CopyMemory MHS, ByVal lParam, Len(MHS) 
        With frmMain.lstMouse 
            Select Case wParam 
                Case WM_MOUSEMOVE 
                    .AddItem "鼠标移动 X:" & MHS.pt.pX & vbTab & " Y:" & MHS.pt.pY, 0 
                Case WM_MOUSEWHEEL 
                    .AddItem "滚轮滚动", 0 
            End Select 
        End With 
    'Case HC_NOREMOVE 
        'wParam 和 lParam 参数包含了鼠标消息 
        '且消息不从消息队列里面移除(但也正因为不移除,所以会引起无限循环...) 
End Select 
MouseProc = CallNextHookEx(hHook, nCode, wParam, ByVal lParam) 
End Function 我用了一些代码来修改,我就想钩到记事本的鼠标消息,但是一运行,记事本就出错了 
请高手指点,谢谢