阻止WM_QUIT

时间:2010-02-27 19:46:10

标签: c# c++ winapi pinvoke message-queue

快速提问。

我有一个通过PInvoke使用本机DLL的应用程序,此DLL可能会调用PostQuitMessage()。

我该如何避免它? (因为我的应用程序不应该关闭)

我尝试过AddMessageFilter,但它没有触发WM_QUIT。

2 个答案:

答案 0 :(得分:3)

是的,IMessageFilter无法正常工作。 WM_QUIT使GetMessage()函数返回FALSE。它永远不会调用消息过滤器,消息循环立即退出。重写WndProc()或取消OnFormClosing()也不起作用。我能想到的唯一解决方法是Detours来禁用PostQuitMessage()。这需要一些C / C ++技能。

答案 1 :(得分:0)

如果从没有任何窗口的线程调用,PostQuitMessage()将无效。