我有一个通常安装的VB6遗留应用程序 C:/ Program Files / Application Name
这意味着在Win7和8下,它受UAC虚拟化控制的约束。由于一些用户发现看似没有文件混乱,我想避免使用UAC虚拟化。如果我要将应用程序安装在另一个目录中,例如
C:/我的应用程序/ AppName
与程序文件分开,这会避免UAC虚拟化还是仍然会发生?
谢谢
答案 0 :(得分:2)
您最好的解决方案是在以下位置安装该应用程序:
%LOCALAPPDATA%\ClintonSoft
e.g。
C:\Users\Clinton\AppData\Local\ClintonSoft
这是允许用户修改的文件夹。
您可以选择退出文件和注册表虚拟化。您可以通过指示asInvoker
的 requestedExecutionLevel 来向程序集清单添加条目来执行此操作:
<?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="client"
type="win32"
/>
<description>Clinton's Reilly Factor</description>
<!-- Disable file and registry virtualization -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
通过选择退出文件和注册表虚拟化,您的应用程序将失败并出现与Windows XP完全相同的ACCESS_DENIED
错误。