如何以管理员身份和兼容模式自动运行VB6编译的软件



我们有一个用VB6构建的ERP应用程序,在我们的一些客户将他们所有的系统升级到Win7之前,它一直运行得很好。

这个软件是以这样一种方式编程的,它注册了一些插件(在插件文件夹中找到),这些插件在运行时是基于COM的。现在,当软件由用户运行时,没有设置兼容模式和以管理员身份运行设置,它会失败并崩溃。

我知道我们可以手动设置兼容模式以及运行管理员右键点击程序可执行文件,然后去它的属性。但是这看起来很不专业。

我想会有办法让win7自动在兼容模式以管理员身份运行

请帮帮我。

兼容性是一项管理功能,而不是开发或部署功能。最好在可能的地方修复应用程序,特别是删除任何提升需求。

有很多工具可以调查这些问题,以便您可以纠正它们。然而,在运行时全局注册"插件"是一件令人讨厌的事情。VB6组件自注册总是全局的,除非注册中心虚拟化可以重定向它。为什么不为插件创建安装程序,以便在安装过程中以提升的方式运行一次?

有一些方法可以减少手动设置兼容性,甚至作为安装的一部分-尽管微软不鼓励这样做。不妨看看:

兼容性修复数据库管理策略和部署

然而,所需的努力可能更好地花在补救问题上。随着时间的推移,支持成本会越来越低。

正如其他答案所说的,您不需要一直高架运行。如果你想在插件启动后注册它(作为一个普通用户),你可以使用ShellExecute()和"runas"动词来运行regsvr32.exe,或者使用COM elevation,这已经讨论过很多次了。

您可以通过在应用程序清单中指定应用程序必须以管理员身份运行,该清单在xml文件中,您可以将其嵌入或与应用程序一起部署。

一旦你的应用程序以管理员权限运行,它应该能够注册和加载插件。你不需要在兼容模式下运行来访问COM插件

最新更新