VB.Net真的不支持全局钩子???
想在VB.Net中实现WH_KEYBOARD_LL和WH_MOUSE_LL的全局钩子。
我在网上已经找了很久,发现这两种钩子VB6和C#均可实现,唯独VB.Net不行!VB6中有App.hInstance可用,VB.Net没有,用“等效”的东东去替代,却不能达到同样的效果。
用hookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf MyKeyboardProc, 0, GetCurrentThreadId())
可以轻松实现线程钩子,而无论如何WH_KEYBOARD_LL都实现不了,我试过下面几种方法:
1.hookproc = SetWindowsHookEx(WH_KEYBOARD_LL, New HOOKPROC(AddressOf MyKeyboardProc), Marshal.GetHINSTANCE([Assembly].GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
2.hookproc = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKeyboardProc, 0, GetCurrentThreadId())
3.hookproc = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKeyboardProc, Marshal.GetHINSTANCE([Assembly].GetExecutingAssembly().GetModules()(0)), 0)
4.hookproc = SetWindowsHookEx(WH_KEYBOARD_LL, New HOOKPROC(AddressOf MyKeyboardProc), Compatibility.VB6.GetHInstance.ToInt32(), 0)
hookproc始终为0.
不知是否有高人已经解决此问题?如果真是不行,是否有其它方法来获知键盘和鼠标的全部活动?