抄了一段代码: '+++++++moudl3.bas Declare Function CallWindowProc Lib "user32" Alias _ "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _ ByVal hwnd As Long, ByVal Msg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As LongDeclare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hwnd As Long, _ ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = -4 Global lpPrevWndProc As Long Global gHW As Long Public Sub Hook() lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _ AddressOf WindowProc) End SubPublic Sub Unhook() Dim temp As Long temp = SetWindowLong(gHW, GWL_WNDPROC, _ lpPrevWndProc) End SubFunction WindowProc(ByVal hw As Long, ByVal uMsg As _ Long, ByVal wParam As Long, ByVal lParam As Long) As _ Long if uMsg=&H204 then 'rbuttondown '做你想做的 else Debug.Print "Message: "; hw, uMsg, wParam, lParam WindowProc = CallWindowProc(lpPrevWndProc, hw, _ uMsg, wParam, lParam) end if End Function'=====FORM Private Sub Form_Load() gHW = Me.hwnd '此处可gHW = Text1.hwnd End SubPrivate Sub Command1_Click() Hook End SubPrivate Sub Command2_Click() Unhook End Sub
'+++++++moudl3.bas
Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As LongDeclare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = -4
Global lpPrevWndProc As Long
Global gHW As Long
Public Sub Hook()
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
AddressOf WindowProc)
End SubPublic Sub Unhook()
Dim temp As Long
temp = SetWindowLong(gHW, GWL_WNDPROC, _
lpPrevWndProc)
End SubFunction WindowProc(ByVal hw As Long, ByVal uMsg As _
Long, ByVal wParam As Long, ByVal lParam As Long) As _
Long
if uMsg=&H204 then 'rbuttondown
'做你想做的
else Debug.Print "Message: "; hw, uMsg, wParam, lParam
WindowProc = CallWindowProc(lpPrevWndProc, hw, _
uMsg, wParam, lParam)
end if
End Function'=====FORM
Private Sub Form_Load()
gHW = Me.hwnd '此处可gHW = Text1.hwnd
End SubPrivate Sub Command1_Click()
Hook
End SubPrivate Sub Command2_Click()
Unhook
End Sub
然后再执行你的程序应该没有问题的