Windows 7 需要对 VB6 应用程序进行 UAC 提升(Vista 没有)
我有一个旧的 VB6 应用程序,应该在 Windows 7 上运行(无人机设置为默认级别,恕我直言,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”,应该没问题。
目前,盾牌图标已从我的 .exe 中消失,但当尝试启动该软件时,我收到消息“Der angeforderte Vorgang erfordert höhere Rechte”,或翻译为英语“请求的操作需要提升”。
我该怎么做才能阻止 Windows 继续骚扰我,以便我可以在我们的客户端计算机上安装此应用程序。嘿,我已经告诉 Windows 将其作为 Invoker 运行,为什么它仍然抱怨?
I have an old VB6 application which should run on Windows 7 (with UAV set to the default level, 3 of 4 IMHO). It has the functionality to update itself, and Windows 7 is now complaining that it would modify the computer (At least windows 7 is right here).
I was able to run it in Vista with some kind of manifest file, but this does not seem to work anymore (which is the intended behaviour if I think of it).
The manifest file is this:
<?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>
The manifest can be found near the exe "IKOffice Starter.exe" and is called "IKOffice Starter.exe.manifest", which should be okey.
Currently the Shield Icon has gone from my .exe, but when try to start the software, i get the message "Der angeforderte Vorgang erfordert höhere Rechte", or translated to english "the requested operation requires elevation".
What can I do to stop windows to bug me anymore, so I can install this application on our clients computers. Hey, I already told Windows to run it as Invoker, so why is it still complaining?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该错误消息从何而来? Windows 还是您的 VB6 应用程序? VB6 应用程序是否会说“嘿,您将我作为调用者运行,但我需要提升运行权限?”毕竟,VS2008 就是这么做的。或者您认为 Windows 是在对您这么说吗?
另外,我怀疑您是否需要 uiAccess=true 并且由于清单往往会从一个项目复制到另一个项目,因此将其设置为 false。
Where does that error message come from? Windows or your VB6 app? Could the VB6 app be saying "hey, you're running me as invoker but I need to be run elevated?" After all, VS2008 does that. Or do you think Windows is saying that to you?
Also I doubt you need
uiAccess=true
and since manifests tend to get copied from project to project, make it false.