【问题标题】:Windows 7 requires UAC elevation for VB6 application (Vista did not)Windows 7 需要 VB6 应用程序的 UAC 提升(Vista 没有)
【发布时间】:2011-02-20 14:02:36
【问题描述】:

我有一个旧的 VB6 应用程序,它应该在 Windows 7 上运行(UAV 设置为默认级别,恕我直言,3 of 4)。它具有自我更新的功能,Windows 7 现在抱怨它会修改计算机(至少 Windows 7 就在这里)。

我能够使用某种清单文件在 Vista 中运行它,但这似乎不再起作用(如果我想到它,这是预期的行为)。

清单文件是这样的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.1.0.24" processorArchitecture="X86" name="IKOfficeAppStarter" type="win32"/>
    <description>IKOffice Starter</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" 
             version="6.0.0.0" processorArchitecture="X86" 
             publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" uiAccess="true"/>
            </requestedPrivileges>
        </security>
    </trustInfo>
</assembly>

清单可以在exe“IKOffice Starter.exe”附近找到,名为“IKOffice Starter.exe.manifest”,应该没问题。

目前 Shield 图标已从我的 .exe 中消失,但尝试启动软件时,我收到消息“Der angeforderte Vorgang erfordert höhere Rechte”,或翻译成英文“请求的操作需要提升”。

我能做些什么来阻止 Windows 再给我出问题,这样我就可以在我们的客户计算机上安装这个应用程序。嘿,我已经告诉 Windows 将它作为 Invoker 运行,为什么它仍然在抱怨?

【问题讨论】:

  • asInvoker 设置的意思是“这个进程应该继承启动它的进程的安全令牌。”你想要 requireAdministrator 吗?
  • 不,我只是想让窗口让程序失败,而不是给我一个消息框

标签: vb6 windows-7 uac manifest


【解决方案1】:

该错误消息来自哪里? Windows 或您的 VB6 应用程序? VB6 应用程序是否会说“嘿,您将我作为调用者运行但我需要提升运行?”毕竟,VS2008 做到了。还是您认为 Windows 是在对您这么说?

我也怀疑你是否需要uiAccess=true,并且由于清单往往会从一个项目复制到另一个项目,所以将其设为 false。

【讨论】:

    猜你喜欢
    • 2011-05-21
    • 2011-02-11
    • 2011-11-18
    • 2011-01-17
    • 2013-06-14
    • 1970-01-01
    • 2010-12-21
    • 2011-03-29
    • 2010-10-25
    相关资源
    最近更新 更多