.net - 如何防止第三方库显示 MessageBox?

标签 .net winapi

我正在将第三方基于 C 的 SDK 集成到我的 .NET 应用程序中。该应用程序将作为 Windows 服务在服务器上运行,因此它不应以任何方式与用户交互。

不幸的是,在某些错误情况下,它坚持调用 MessageBoxA,大概是为了报告发生了不好的事情。发生这种情况时,服务将停止响应。我猜它正在等待有人按确定?

不可能让供应商为我更改他们的代码。

有没有办法可以将此调用变为无操作,以便我的代码可以自动处理这种情况?

编辑:可能很重要的是,在我的特定情况下,如果服务崩溃,服务将自动重新启动。对于在我的案例中显示 MessageBox 的情况,优雅(尽可能)和突然退出可能是最佳解决方案。

最佳答案

查看 Detours from Microsoft Research .它允许您绕过任意 Windows API 函数。但是,需要 C/C++ 编程才能使其工作。你不需要太多。

关于.net - 如何防止第三方库显示 MessageBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179672/

相关文章:

c - 如何将 UTF-8 字符串写入 Windows 控制台?

c - Windows 上开发的程序中的内存泄漏检测

c# - ListBox 项目可以跨越多行吗? C#

c# - Protobuf-net 在与泛型一起用于反序列化时要求 TypeModel.CS

c# - .net:为什么在命名空间中使用 int 是不合法的?

.net - 如何在 WebBrowser Control 中设置当前 document.domain 以避免 "Access is denied"?

.net - 缓冲参数在 Dapper dot net 中起什么作用?

C++ Windows : LRESULT CALLBACK and WNDPROC

C++ 等待但允许事件触发

c - Windows 上的 InternetOpenUrl 函数是否足够安全?如果没有,如何让它更强大?