winapi - 程序兼容性助手 list 在 Vista32 中不起作用

标签 winapi windows-vista manifest compatibility uac

当我运行应用程序“驱动程序安装程序和卸载程序应用程序”时,一旦我的 exe 成功结束,我就会看到“程序兼容性助手”窗口。经过 SO 链接和谷歌搜索后,我找不到避免 vista 32 中“程序兼容性助手”窗口的解决方案。我使用下面的 list 来避免 PCA,它按预期工作(我在 Windows 7 中没有获得任何 PCA 窗口),但是除了 Windows Vista 32 之外?我应该做什么才能使这项工作成功?

After Using the below manifest for my installer application I am not getting PCA window in windows 7 but it appears on windows vista 32-bit. How to avoid PCA window in vista32?

一些相关问题是:

这是我使用的 list :

 <?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="Unins.exe"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="highestAvailable" 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 窗口的快照...

Snap Shot of PCA window

更新:PCA 窗口的根本原因是“我的安装程序未在“添加或删除程序”中创建条目”。我让我的应用程序在“添加或删除程序”中输入条目,但没有收到任何 PCA 窗口。但我不想在“添加或删除程序”中添加条目。

Update 25-09-12: I have an executable say A.exe, which finds architecture of the OS and depends on the architecture it calls either A64.exe or A86.exe. In this case do I want to have manifests for all the exe's ( A.exe, A64.exe, A86.exe )? Right now I have manifest only for A.exe.

最佳答案

为了完全选择退出 PCA,您肯定需要在所有三个可执行文件中包含一个 list 。

关于winapi - 程序兼容性助手 list 在 Vista32 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12532308/

相关文章:

android - 在包更新时防止 android.intent.action.PACKAGE_REMOVED

c - 英特尔性能监视器——有什么方法可以监视每个进程吗?

c++ - WaitForSingleObject 不会超时 - C++

c# - 使用 C# 以编程方式打开魅力栏、电源栏和开始菜单

c# - Vista 上的 WebProxy 和身份验证

作为标准用户在 Windows Vista 上安装 VB6

使用 Vista UAC (C Windows) 的 CreateDesktop()

java - AndroidManifest.xml 无法正确编译

java - android - 无法实例化 Activity - ClassNotFound - 在一个 eclipse 上失败但在其他 eclipse 上失败

c++ - 在 native Windows 应用程序的资源中嵌入文本文件