【发布时间】:2019-07-11 10:35:10
【问题描述】:
我正在开发一个在全球范围内侦听触摸事件的应用程序,为此我设置了一个挂钩来检索 WM_TOUCH 消息。此消息将从WH_GETMESSAGE 挂钩中检索。
问题是每次我运行应用程序时,explorer.exe 都会崩溃,并且需要很长时间才能再次打开。能不能有懂这个问题的人?我之前使用WH_KEYBOARD_LL 完成了此操作,但它并没有做同样的事情。
这个,我仍然没有得到任何全局触摸事件。
我的钩子设置如下:
public void hook() {
IntPtr hInstance = LoadLibrary("User32");
hhook = SetWindowsHookEx(WH_GETMESSAGE, hookProc, hInstance, 0); // set Thread ID to 0 to listen to all threads within the same desktop
}
我已阅读有关在 MSDN here 上设置全局挂钩的信息。
我还在我的应用窗口中调用了
RegisterTouchWindow函数来启用接收触摸事件。
【问题讨论】:
-
您必须为全局挂钩使用 DLL(低级挂钩除外)
-
我设法为全局钩子创建了一个 DLL,它有点工作。我遇到了另一个问题,其中只有一个应用程序被钩住,而不是所有应用程序。我将在这里回答主要问题,并为下一个问题创建一个新的问题线程。
-
创建了一个新问题,详细说明上述问题here
标签: c# winforms hook loadlibrary setwindowshookex