RaiseEvent KeyUp(我,e)
handled =已处理或e.Handled
如果结束
“激活KeyPress(待办事项: 此代码中仍有bug!)
如果wParam = WM_KEYDOWN那么
Dim isDownShift为Boolean =(GetKeyState(VK_SHIFT)&&H80 =&H80)
将isDownCapslock设为Boolean =(GetKeyState(VK_CAPITAL)0)
将keyState(256)设置为字节
GetKeyboardState(keyState)
将inBuffer(2)设置为字节
如果ToAscii(MyKeyboardHookStruct.vkCode,MyKeyboardHookStruct.ScanCode,keyState,inBuffer,MyKeyboardHookStruct.Flags)= 1然后
静态键为Char: key = Chr(inBuffer(0))
'BUG在哪里
“如果isDownCapslock Xor isDownShift和Char.IsLetter(键)则
'key = Char.ToUpper(键)
'如果结束
将其作为新的KeyPressEventArgs(键)
RaiseEvent KeyPress(我,e)
handled =已处理或e.Handled
如果结束
如果结束
'取消或激活下一个钩子
如果已处理,则返回1否则返回CallNextHookEx(hKeyboardHook,nCode,wParam,lParam)
如果结束

结束功能
'鼠标消息委托处理代码
私有函数MouseHookProc()函数MouseHookProc(作为整数的ByVal nCode,作为整数的ByVal wParam,作为IntPtr的ByVal lParam)作为整数
如果nCode> = 0 AndAlso事件(“ MouseActivity”)则一无所有
静态mouseHookStruct作为MouseLLHookStruct
mouseHookStruct = DirectCast(Marshal.PtrToStructure(lParam,GetType(MouseLLHookStruct)),MouseLLHookStruct)
静态鼠标作为鼠标按钮: moubut = MouseButtons. 没有鼠标按钮
静态mouseDelta为整数: mouseDelta = 0'滚子值
选择案例wParam
案例WM_LBUTTONDOWN
moubut = MouseButtons.Left
案例WM_RBUTTONDOWN
moubut = MouseButtons.Right
案例WM_MBUTTONDOWN
moubut = MouseButtons.Middle
案例WM_MOUSEWHEEL
Static int As Integer: int =(mouseHookStruct.MouseData >> 16)和&HFFFF
'此代码已添加到CLE中,模仿了C#从Int drop进行的简短转换
If int> Short.MaxValue then mouseDelta = int-65536其他mouseDelta = int
结束选择
静态clickCount为整数: clickCount = 0'点击次数
如果moubut MouseButtons. 没有那么
如果wParam = WM_LBUTTONDBLCLK或者其他wParam = WM_RBUTTONDBLCLK或者其他wParam = WM_MBUTTONDBLCLK那么
clickCount = 2
其他
clickCount = 1
如果结束
如果结束
将其作为新的MouseEventArgs(moubut,clickCount,mouseHookStruct.PT.X鼠标钩子vb,mouseHookStruct.PT.Y,mouseDelta)
RaiseEvent MouseActivity(Me,e)
如果结束
返回CallNextHookEx(hMouseHook,nCode,wParam,lParam)“激活下一个钩子
结束功能
/ ** /'''键盘挂钩是否有效
公共属性KeyHookEnabled()属性KeyHookEnabled()为布尔值
获取
返回hKeyboardHook 0
结束获取
设置(ByVal值为布尔值)
如果值则为StartHook(正确,错误),否则为UnHook(正确,错误)
结束集
最终属性
/ ** /'''鼠标钩是否起作用?
公共属性MouseHookEnabled()属性MouseHookEnabled()为布尔值
获取
返回hMouseHook 0
结束获取
设置(ByVal值为布尔值)
如果有值,则StartHook(False,True),否则UnHook(False,True)
结束集
最终属性
结束班级
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-159875-2.html
网友们理智多了
垃圾一个
哪里可以看到