VB.net / IO / 获取鼠标键盘事件的钩子函数

VB.net / IO / 获取鼠标键盘事件的钩子函数

VB.net 中获取鼠标键盘的钩子函数。可以将代码粘贴至一个新建模块,然后在主程序中声明一个Hook,调用Hook的事件就可以得到鼠标键盘的返回值了。(原谅我把VB.net写出了Python风格…)

Imports System.ComponentModel
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Public Class SystemHook
#Region "定义结构"
    Private Structure MouseHookStruct
        Dim X,Y As Single, Hwnd, WHitTestCode, DwExtraInfo As Integer: End Structure
    Private Structure MouseLLHookStruct
        Dim X,Y As Single, MouseData, Flags, Time, DwExtraInfo As Integer: End Structure
    Private Structure KeyboardHookStruct
        Dim vkCode, ScanCode, Flags, Time, DwExtraInfo As Integer:    End Structure
    Public myeor As String
#End Region

#Region "API声明导入"
    Private Declare Function SetWindowsHookExA Lib "user32" (ByVal idHook As Integer, ByVal lpfn As HookProc, ByVal hMod As IntPtr, ByVal dwThreadId As Integer) As Integer
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Int32, ByVal lpfn As HookProc, ByVal hMod As IntPtr, ByVal dwThreadId As Int32) As Int32
    'SetWindowsHookEx(安装的钩子的类型,消息的处理函数,应用程序事例句柄,线程ID) 
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal idHook As Int32) As Int32
    Private Declare Function CallNextHookEx Lib "user32" (ByVal idHook As Int32, ByVal nCode As Int32, ByVal wParam As Int32, ByVal lParam As IntPtr) As Int32
    Private Declare Function ToAscii Lib "user32" (ByVal uVirtKey As Int32, ByVal uScancode As Int32, ByVal lpdKeyState As Byte(), ByVal lpwTransKey As Byte(), ByVal fuState As Int32) As Int32
    Private Declare Function GetKeyboardState Lib "user32" (ByVal pbKeyState As Byte()) As Int32
    Private Declare Function GetKeyState Lib "user32" (ByVal vKey As Int32) As Short
    Private Delegate Function HookProc(ByVal nCode As Int32, ByVal wParam As Int32, ByVal lParam As IntPtr) As Int32

#End Region

#Region "常量声明"
    Private Const WH_MOUSE_LL = 14, WH_KEYBOARD_LL = 13, WH_MOUSE = 7, WH_KEYBOARD = 2, WM_MOUSEMOVE = &H200, WM_LBUTTONDOWN = &H201, WM_RBUTTONDOWN = &H204, WM_MBUTTONDOWN = &H207, WM_LBUTTONUP = &H202, WM_RBUTTONUP = &H205, WM_MBUTTONUP = &H208, WM_LBUTTONDBLCLK = &H203, WM_RBUTTONDBLCLK = &H206, WM_MBUTTONDBLCLK = &H209, WM_MOUSEWHEEL 
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值