我想知道是否有一种在Windows上运行程序的万无一失的方法,以便我保证 不显示任何类型的交互式对话框。
我已经尝试过注册表ErrorMode hack,调用_CrtSetReportMode()等,但是它们都有漏洞或要求你修改程序。
我需要一种运行任意程序的方法,并且几乎强制Windows执行它们,这样它们就不可能打开一个窗口。如果程序试图打开一个窗口,程序就会崩溃。
将程序作为服务运行会解决问题吗?
答案 0 :(得分:1)
我不知道任何可能有效的方法。作为服务运行不会解决问题,因为对话框将显示在您通常无法访问的服务桌面上。
答案 1 :(得分:1)
您可以使用Detours这样的库拦截对可能显示对话框的函数的所有调用(实际上这可能几乎是user32.dll
中的所有内容。)