Windows MessageBox阻止从应用程序退出

Windows MessageBox阻止从应用程序退出,windows,modal-dialog,exit,messagebox,Windows,Modal Dialog,Exit,Messagebox,我们的应用程序加载有时会弹出MessageBox的第三方DLL。 我们注意到,有时当存在打开的MessageBox时,我们不能仅使用exit(0) 在这种情况下,我们怎么还能强迫一个国家存在呢 谢谢如果您想使用暴力,可以调用TerminateProcess()函数。我不确定这是否是一个好主意,您可能希望检测是否有打开的消息框,并发送一个靠近它的消息(例如使用FindWindow()) 看看。看起来像是从DLL\u THREAD\u DETACH或DLL\u PROCESS\u DETACH中调用

我们的应用程序加载有时会弹出MessageBox的第三方DLL。 我们注意到,有时当存在打开的MessageBox时,我们不能仅使用exit(0)

在这种情况下,我们怎么还能强迫一个国家存在呢


谢谢

如果您想使用暴力,可以调用
TerminateProcess()
函数。我不确定这是否是一个好主意,您可能希望检测是否有打开的消息框,并发送一个靠近它的消息(例如使用
FindWindow()


看看。

看起来像是从
DLL\u THREAD\u DETACH
DLL\u PROCESS\u DETACH
中调用
MessageBox
(或其他)丑陋的DLL

如果这发生在同一个线程(即调用
退出的线程)中,您可以尝试在应用程序退出之前调用
PostQuitMessage
right。这将中止任何消息循环。如果这在另一个线程中发生-您可以调用
PostThreadMessage


还可以通过挂接相应的模块(Exe/Dll)导入表来拦截对Win32 API函数的调用。由J.里希特发明(如果我没记错的话)

抱歉,Windows Vista和Beyond是否因为MessageBox是模态的而挂起?我找到了特定窗口的句柄,但它无法使用CloseWindow()关闭,我是否遗漏了什么?您可以尝试向他发送[ESC]按键。