如何在C ++ / Win32中为我的程序禁用程序兼容性助手?

时间:2011-06-14 15:50:14

标签: c++ winapi compatibility

当我的应用程序退出时,将出现Windows“程序兼容性助手”。我想在我的应用程序终止时不显示该窗口。


这是我的问题http://msdn.microsoft.com/en-us/library/dd371711(v=vs.85).aspx的解决方案 我添加了自定义清单。

1 个答案:

答案 0 :(得分:3)

如果您看到此对话框,可能会发生以下两种情况之一:

  1. 您的程序被检测为安装程序,Windows正在为您提升安装程序。你可以做的很少,因为这个高程检查是由文件名启发式确定的。如果您的程序包含“setup”,“instal”(是,单个l)或其中的其他几个文件名,则会出现对话框,并且您无法对其进行任何操作。
    编辑:显然可能有办法解决这个问题......请参阅评论。

  2. 或者,您可能正在调用某些为当前版本的Windows弃用的API,或者错误地调用某些API,从而触发兼容性启发式扫描。如果是这种情况,您只需要在程序中找到触发启发式的位置。您可以使用Application Compatibility Toolkit (ACT)来确定触发对话的内容,IIRC。

  3. 没有办法只是“禁用”这个对话框 - 你必须先修复触发它的内容才能让它消失。