首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何防止第三方库显示MessageBox?

如何防止第三方库显示MessageBox?
EN

Stack Overflow用户
提问于 2010-02-02 04:04:18
回答 2查看 1.2K关注 0票数 17

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

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

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

有没有办法让我把这个调用变成一个no-op,这样我的代码可以自动处理这种情况?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-02 04:14:37

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

票数 10
EN

Stack Overflow用户

发布于 2010-02-02 04:10:45

您可以使用一个编辑器来找到它的位置,并从它们的二进制文件中删除调用。但在软件的使用限制下,这可能是允许的,也可能是不允许的。当然,如果您重新分发它,它可能会导致问题-您应该询问供应商并将其报告为缺陷,并建议您有一个供自己使用的解决方案。

对于习惯于做这种事情(破解许可或其他反向工程)的人来说,这是相当简单的,但真正的问题是,如果它被忽略了会发生什么-它还能继续工作吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2179672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档