我有一个 VB6 旧版应用程序,通常安装在C:/程序文件/应用程序名称
这意味着在 Win7 和 8 下,它受 UAC 虚拟化控制的约束。由于一些用户发现似乎没有文件令人困惑,我想避免 UAC 虚拟化。如果我要在另一个目录中安装应用程序,例如
C:/我的应用程序/应用程序名称
与程序文件分开,这会避免 UAC 虚拟化还是仍然会发生?
谢谢
最好的解决方案是将应用程序安装在:
%LOCALAPPDATA%ClintonSoft
例如
C:UsersClintonAppDataLocalClintonSoft
这是允许用户修改的文件夹。
或者您可以关闭虚拟化
您可以选择退出文件和注册表虚拟化。为此,您可以通过指示 requestExecution 级别 asInvoker
向程序集清单添加一个条目:
<?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
错误。