我正在将第三方基于C的SDK集成到我的.NET应用程序中。该应用程序将作为Windows服务在服务器上运行,因此它不应以任何方式与用户进行交互。
不幸的是,在某些错误情况下,它坚持调用MessageBoxA,大概是报告已发生了一些不良情况。发生这种情况时,服务停止响应。我猜它正在等待有人按OK?
无法让供应商为我更改其代码。
有没有一种方法可以使此调用变为无操作,以便我的代码可以自动处理这种情况?
编辑:可能需要提及的是,在我的特定情况下,如果服务崩溃,该服务将自动重新启动。对于在我的情况下显示MessageBox的情况,正常(尽可能)且突然退出可能是最佳解决方案。
最佳答案
检出Detours from Microsoft Research。它允许您绕开任意Windows API函数。虽然需要C / C ++编程才能使其正常工作。您不需要太多。
关于.net - 如何防止第三方库显示MessageBox?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2179672/