2

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

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

我需要一种方法来运行任意程序并实际上强制 Windows 执行它们,这样它们就不可能打开窗口。如果它试图打开一个窗口,程序崩溃是完全可以的。

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

4

2 回答 2

1

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

于 2008-10-06T20:30:18.343 回答
1

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

于 2008-10-06T20:31:57.607 回答