windows-7 - 获得“程序兼容性助手”对话框的原因?

标签 windows-7 uac compatibility

在应用程序关闭后,出现“程序兼容性助手”对话框的可能原因是什么?

Program Compatibility Assistant image
(来源:microsoft.com)

编辑:Program Compatibility Assistant: frequently asked questions

我知道这个问题已经在S.O上提出了。

  • Program Compatibility Assistant thinks my app is an installer
  • Windows 7 Program Compatibility Assistant appeared for my app. Why?
  • Why I receive a message from the Program Compatibility Assistant?
  • How do I prevent programmatically the “Program Compatibility Assistant” in Vista (and Windows 7) from appearing?

  • 但是,我的应用程序:
  • 仅在关闭
  • 后才获得PCA
  • 不要尝试做任何需要提升特权的事情(我不认为)
  • 从IDE
  • 运行时不获取PCA
  • 不是安装程序/安装程序
  • 程序名称
  • 中没有“安装程序”或“安装程序”
  • 关闭或以0以外的代码退出(我不认为)时,不引发异常
  • 如果我将<compatibility>节点添加到应用程序 list
  • 中,则不会获得PCA

    注意#6,使用以下app.manifest,我不再获得PCA:
    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="asInvoker" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
          <!--The ID below indicates application support for Windows Vista -->
          <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
          <!--The ID below indicates application support for Windows 7 -->
          <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
      </compatibility>
    </asmv1:assembly>
    

    所以第二部分似乎已解决,但我担心我的应用程序仍在做我不知道的事情。

    为了清楚起见,我要问一个两部分的问题:
  • 哪些问题可能导致PCA对话框出现?
  • 为了避免PCA对话框,<compatibility>节点是否绝对必要?还是我可能做错了什么?
  • 最佳答案

    This MSDN article描述了可能导致程序兼容性助手介入的许多情况。我将回顾它所描述的场景,并查看其中是否适用于您的程序。我确实在您排除的条件之外看到了PCA对话框的原因(例如,尝试在%ProgramFiles%下创建新文件夹)。

    关于windows-7 - 获得“程序兼容性助手”对话框的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098747/

    相关文章:

    compatibility - 向后兼容性与标准合规性?

    使用 Infragistics 组件和调整例程大小时,Winforms 应用程序在不同计算机上的显示不同

    用于分离辅助监视器的 C++ 应用程序

    python - 为什么设置窗口图标时没有定义 .ico 文件?

    c++ - 在运行时请求管理员权限

    c# - 是否可以在没有管理员权限的情况下安装将程序集放入 GAC 的程序?

    .net - 文本输入面板未显示在 WPF 弹出窗口中

    JavaVM Windows 7 64 位 - JFileChooser() 不显示对话框

    c# - 竞争对手的应用程序安装到与我相同的文件夹,不需要管理员权限

    android - 支持图书馆的好处