0

我们有一个内置在 VB6 中的 ERP 应用程序,它运行良好,直到我们的一些客户将他们所有的系统升级到 Win7。

该软件的编程方式是注册一些在运行时基于 COM 的插件(位于插件文件夹中)。现在,当用户在未设置兼容模式和以管理员身份运行设置的情况下运行该软件时,它会失败并崩溃。

我知道我们可以通过右键单击程序可执行文件然后转到其属性来手动设置兼容模式和运行管理员。但这看起来很不专业。

我认为会有一些方法可以告诉 Win 7 以兼容模式自动运行软件并以管理员身份运行

请帮我。

4

3 回答 3

1

兼容性是一种管理功能,而不是开发或部署功能。最好在可能的情况下修复应用程序,尤其是删除任何海拔要求。

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

有一些方法可以减少手动设置兼容性,即使作为安装的一部分 - 尽管 Microsoft 不鼓励这样做。也许看看:

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

然而,所需的努力可能会更好地用于解决问题。支持成本会随着时间的推移而减少。

于 2011-08-16T22:04:36.070 回答
1

正如其他答案所说,你不应该一直在提升运行。如果你想在插件启动后注册插件(作为普通用户),你可以使用带有“runas”动词的ShellExecute()来运行regsvr32.exe,或者使用之前已经讨论过很多次的COM提升

于 2011-08-24T10:45:13.413 回答
0

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

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

于 2011-08-18T19:59:19.793 回答