我为在 Windows 7 上运行的 VB6 应用程序创建了一个清单文件(不是为了任何视觉样式更改,只是为了确保它访问通用注册表而不是虚拟化注册表)
exe 名称为 Capadm40.exe,清单名为 Capadm40.exe.manifest,包含以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.Capadm40"
type="win32"/>
<description>Administers the System</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
然而,这似乎没有什么区别。即应用程序仍在使用虚拟化注册表配置单元。同样奇怪的是,当我在应用程序exe的属性中取消选中“以管理员身份运行此程序”选项后,Windows仍然在应用程序图标上显示一个盾牌,导致我认为这是我的Windows安装的一些问题而不是清单上的错误。有任何想法吗?
您可能与融合缓存(以及 Explorer Shell 的图标缓存)发生冲突。无论如何,强烈建议不要使用外部清单,但在程序先前运行后尝试添加外部清单通常会导致此类症状。
See 清单和融合缓存 http://blogs.msdn.com/b/vistacompatteam/archive/2006/11/13/manifest-and-the-fusion-cache.aspx进行简要说明。
你也可以touch http://www.helge.mynetcologne.de/touch/index.htmEXE 重新加载缓存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)