防止在无人参与的构建中出现对话框

时间:2008-10-06 20:28:34

标签: build-process automation build-automation

我想知道是否有一种在Windows上运行程序的万无一失的方法,以便我保证 不显示任何类型的交互式对话框

我已经尝试过注册表ErrorMode hack,调用_CrtSetReportMode()等,但是它们都有漏洞或要求你修改程序。

我需要一种运行任意程序的方法,并且几乎强制Windows执行它们,这样它们就不可能打开一个窗口。如果程序试图打开一个窗口,程序就会崩溃。

将程序作为服务运行会解决问题吗?

2 个答案:

答案 0 :(得分:1)

我不知道任何可能有效的方法。作为服务运行不会解决问题,因为对话框将显示在您通常无法访问的服务桌面上。

答案 1 :(得分:1)

您可以使用Detours这样的库拦截对可能显示对话框的函数的所有调用(实际上这可能几乎是user32.dll中的所有内容。)