VB6全局键盘、鼠标钩子

  • 格式:doc
  • 大小:27.50 KB
  • 文档页数:5

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB: È«¾Ö¼üÅÌ¡¢Êó±ê¹³×Ó

'---------------------------------

'Form

'°²×°¹³×Ó

Private sub AddHook()

'¼üÅ̹³×Ó

lHook(0) = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf CallKeyHookProc, App.hInstance, 0)

'Êó±ê¹³×Ó

lHook(1) = SetWindowsHookEx(WH_MOUSE_LL, AddressOf CallMouseHookProc, App.hInstance, 0)

End Sub

'ж¹³×Ó

Private sub DelHook()

UnhookWindowsHookEx lHook(0)

UnhookWindowsHookEx lHook(1)

End Sub

'---------------------------------

'Ä£¿é

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 GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

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 Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, ByVal lpvSource As Long, ByVal cbCopy As Long) Public Type KEYMSGS

vKey As Long 'ÐéÄâÂë (and &HFF)

sKey As Long 'ɨÃèÂë

flag As Long '¼ü°´Ï£º128 ̧Æð£º0

time As Long 'WindowÔËÐÐʱ¼ä

End Type

Public Type MOUSEMSGS

X As Long 'x×ù±ê

Y As Long 'y×ù±ê

a As Long

b As Long

time As Long 'WindowÔËÐÐʱ¼ä

End Type

Public Type POINTAPI

X As Long

Y As Long

End Type

Public Const WH_KEYBOARD_LL = 13

Public Const WH_MOUSE_LL = 14

Public Const Alt_Down = &H20

'-----------------------------------------

'ÏûÏ¢

Public Const HC_ACTION = 0

Public Const HC_SYSMODALOFF = 5

Public Const HC_SYSMODALON = 4

'¼üÅÌÏûÏ¢

Public Const WM_KEYDOWN = &H100

Public Const WM_KEYUP = &H101

Public Const WM_SYSKEYDOWN = &H104

Public Const WM_SYSKEYUP = &H105

'Êó±êÏûÏ¢

Public Const WM_MOUSEMOVE = &H200

Public Const WM_LBUTTONDOWN = &H201

Public Const WM_LBUTTONUP = &H202

Public Const WM_LBUTTONDBLCLK = &H203

Public Const WM_RBUTTONDOWN = &H204

Public Const WM_RBUTTONUP = &H205

Public Const WM_RBUTTONDBLCLK = &H206

Public Const WM_MBUTTONDOWN = &H207

Public Const WM_MBUTTONUP = &H208

Public Const WM_MBUTTONDBLCLK = &H209

Public Const WM_MOUSEACTIVATE = &H21

Public Const WM_MOUSEFIRST = &H200

Public Const WM_MOUSELAST = &H209

Public Const WM_MOUSEWHEEL = &H20A

Public Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public strKeyName As String * 255

Public Declare Function GetActiveWindow Lib "user32" () As Long Public keyMsg As KEYMSGS

Public MouseMsg As MOUSEMSGS

Public lHook(1) As Long

'----------------------------------------

'Ä£ÄâÊó±ê

Private Const MOUSEEVENTF_LEFTDOWN = &H2

Private Const MOUSEEVENTF_LEFTUP = &H4

Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move

相关主题