-
VB.net / IO / 获取鼠标键盘事件的钩子函数
VB.net / IO / 获取鼠标键盘事件的钩子函数
VB.net 中获取鼠标键盘的钩子函数。可以将代码粘贴至一个新建模块,然后在主程序中声明一个Hook,调用Hook的事件就可以得到鼠标键盘的返回值了。(原谅我把VB.net写出了Python风格…)
Imports System.Reflection
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Public Class SystemHook
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
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
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 = &H20A, WM_KEYDOWN = &H100, WM_KEYUP = &H101, WM_SYSKEYDOWN = &H104, WM_SYSKEYUP = &H105, VK_SHIFT As Byte =
最新更新
MyBatis初级实战之一:Spring Boot集成
(十一)Spring从入门到入土——Spring整合
什么是Java泛型?
SpringCloud LoadBalancer灰度策略实现
搞定面试官:咱们从头到尾再说一次 Ja
数组阻塞队列(ArrayBlockingQueue)源码解读
Java 设置Excel条件格式(高亮条件值、应用
JVM Thread Dump 文件分析
IntelliJ IDEA启动界面的秘密:当编程遇到艺
一些JavaSE学习过程中的思路整理(一)(主
用 Access+Outlook 来采集信息
使用PowerDesigner生成Access数据库
让我们一起用开源数据库和开源框架废弃
随说秋色园从Access升迁到MSSQL过程
当爬虫被拒绝时(Access Denied)
Web API与OAuth:既生access token,何生refres
[认证 & 授权] 6. Permission Based Access Co
Access之C#连接Access
oracle 19c下载和安装教程(database和client)
MySql索引原理与使用大全
php的计数器每次都会清零
PHP基础
数据类型之对象
数据类型之布尔型、整型、浮点型和字符
php教程之数据类型之数组
php教程之PHP 常量
php教程之变量
php教程之语法
PHP简介与安装
phpMyAdmin配置安装全攻略