在Win7和Win8中避免UAC虚拟化

时间:2014-01-14 07:20:56

标签: vb6 uac

我有一个通常安装的VB6遗留应用程序 C:/ Program Files / Application Name

这意味着在Win7和8下,它受UAC虚拟化控制的约束。由于一些用户发现看似没有文件混乱,我想避免使用UAC虚拟化。如果我要将应用程序安装在另一个目录中,例如

C:/我的应用程序/ AppName

与程序文件分开,这会避免UAC虚拟化还是仍然会发生?

谢谢

1 个答案:

答案 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错误。