Windows 7要求VB6应用程序进行UAC提升(Vista不需要)

3
我有一个老旧的VB6应用程序,应该在Windows 7上运行(UAV设置为默认级别,我认为是4个级别中的3个)。它具有自动更新功能,但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”,这应该是可以的。

目前,我的.exe文件中的盾牌图标已经消失了,但是当我尝试启动软件时,我收到了消息“Der angeforderte Vorgang erfordert höhere Rechte”,或者翻译成英语是“the requested operation requires elevation”。

我该怎么做才能让Windows不再打扰我,以便我可以在我们客户的计算机上安装此应用程序。嘿,我已经告诉Windows将其作为Invoker运行,那么它为什么还在抱怨呢?


asInvoker设置表示“该进程应继承启动它的进程的安全令牌。”你是想使用requireAdministrator吗? - Bob77
不,我只是想让程序窗口崩溃,而不是弹出消息框打扰我。 - Daniel
1个回答

1

这个错误消息是从哪里来的?是来自 Windows 还是你的 VB6 应用程序?可能 VB6 应用程序在说:“嘿,你正在以调用者身份运行我,但我需要以提升权限运行?”毕竟,VS2008 会这样做。或者您认为是 Windows 对您说的呢?

此外,我怀疑您不需要 uiAccess=true,因为清单往往会从一个项目复制到另一个项目中,请将其设置为 false。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接