我正在加载第 3 方 DLL,有时它们会打开停止应用程序流程的 MessageBox 窗口,我希望能够检测到何时发生此类事情。
我正在尝试使用SetWindowsHookEx
withWH_CBT
但我的回调没有被调用。
我试着这样称呼它:
SetWindowsHookEx (WH_CBT, myCallback, NULL, 0);
但它没有奏效。
这个函数的正确调用应该是什么?
我正在加载第 3 方 DLL,有时它们会打开停止应用程序流程的 MessageBox 窗口,我希望能够检测到何时发生此类事情。
我正在尝试使用SetWindowsHookEx
withWH_CBT
但我的回调没有被调用。
我试着这样称呼它:
SetWindowsHookEx (WH_CBT, myCallback, NULL, 0);
但它没有奏效。
这个函数的正确调用应该是什么?
您可以使用 WM_ENTERIDLE 消息来检测是否有任何 MessageBox 窗口,只需使用 FindWindowEx() 进行检查。
这是 C#,但想法不会改变: http ://social.msdn.microsoft.com/forums/en-US/winforms/thread/d3f89686-e4d0-4bb1-9052-31abef2a9d2a