VB6在Windows 10上运行缓慢。

3
我有一些VB6应用程序,它们在自XP以来的每个Windows版本下都运行良好。现在我们正在过渡到Windows 10 x64,我们发现我们的GUI应用程序非常慢,特别是在SQL操作等方面。我们以提升的权限运行所有应用程序,并在兼容性选项卡中尝试了各种选项,但没有阻止它变得缓慢。
最近,我发现如果运行兼容性故障排除程序,则会大大改进。第一次测试失败,因为我们必须以管理员权限重试,但然后它似乎很好。
我不明白的是,故障排除程序与手动选择选项有何不同,而且即使我告诉它保存设置,下一次应用程序运行时它仍然很慢,我们还要运行故障排除程序。我进行了一些研究并确认所有应用程序均从本地硬盘运行。我们还将数据库保留在本地驱动器上。
以防有帮助,从周年纪念版到今天的干净安装都运行不同版本的Win10。Visual Studio IDE安装在Program Files目录下(而不是program files x86),我取消了ADO、RDS ODBC提供程序的选择,如互联网上某处建议的那样(有ADODB调用,这可能与此有关)。IDE也以提升的权限运行。
基本上有3个应用程序,其中2个在后台运行。所有引用来自第三方的一些DLL文件,并运行多个SQL调用到本地数据库。我们已经注意到如果数据库正在其他地方被访问(即使通过Access,因此不是重复性的),这也会减缓GUI的速度。该系统需要执行实时任务,因此这种缓慢会影响操作。
提前感谢任何建议。

1
这是一台开发机还是目标/客户/部署机?如果应用程序在此运行,为什么要安装IDE呢? - StayOnTarget
1
就我所知,我支持的各种VB6应用程序在不同的Windows版本之间没有明显的差异。因此,我认为通常情况下,在Windows 10中没有VB6问题。一定有一些特定于您的应用程序的东西导致了减速。一个建议是构建简单的剥离测试应用程序;通过这种方式尝试不同的依赖项(DB访问等),直到您缩小了问题的范围。即将Win10的结果与Win7进行比较...祝你好运。 - StayOnTarget
嗨,感谢您的建议。基本上,每个不同的安装都需要特定定制的前端,因此我们发现最好只包括IDE,这样现场技术人员可以随时编写所需内容。然而,我们发现这会影响所有Windows 10安装的速度,无论是我们软件的简单基础版本还是已经修改过的版本。 - Simon Wait
有趣的是,昨天我以不同的方式解决了问题。通过在开始菜单中键入“兼容性”,而不是通过右键单击图标,它会带您进入不同的过程,目前似乎已经保留了信息。感谢您的帮助DaveInCaz。从长远来看,我肯定会将代码分解,看看这里没有得到帮助。我还发现了一些更有效的重新编码方法,所以也会使用它们。 - Simon Wait
1
很高兴听到你正在取得进展。如果你最终掌握了技巧,也许为自己的问题找到答案会对其他人有所帮助!最好的问候。 - StayOnTarget
3个回答

2
VB6程序的正确且最快的运行软件只能在“Windows 7(SP3)”模式下使用,需要升级为管理员权限。自那个版本以来,Windows增加了许多安全功能,必须“模拟”这些功能,以使VB6程序在某些安全限制内操作。代价是速度减慢,速度几乎降低了一半,大多数时间演示代码都可以测量出来。
将兼容性模式设置为“Windows 7(SP3)”,并将程序提升为管理员,将使程序恢复到正常速度。实际上,在某些领域中它会比在那个版本的Windows上更快。
这应该在手动操作或程序安装时完成。您必须添加注册表键,基于程序的安装位置和命名方式或标识符。提示用户以便他们可以批准您的程序获得提升的(管理员)访问权限。

0

尽管它仍在工作,但它真的没有针对新操作系统进行优化 - 当然这只是针对Windows而言。有许多程序曾经可以在Windows XP上运行,但今天却完全无法工作。

由于语言儿子更喜欢使用解释器而不是编译器 - 当然还有其他语言,例如Python已经经历了许多优化。这大大减少了软件的体积。


0

我遇到了同样的问题,并通过以下兼容性选项解决了它:

  • 右键单击“C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE”,并从弹出菜单中选择属性选项
  • 从属性窗口中选择兼容性选项卡
  • 在兼容性模式下,选择“以兼容模式运行此程序
  • 选择“Windows-XP(Service Pack 2)
  • 单击确定并执行VB6

enter image description here


嗨,抱歉没有注意到你的回应。是的,我尝试了那些兼容性设置几次,但每次都会导致奇怪的图形行为,树视图中的图标显示不正确,这对最终用户来说可能比速度慢更糟糕。 我会继续努力的! - Simon Wait
只是一个更新,当我得到最新的Windows-10更新时,那个问题自动解决了,现在没有问题了。 - Haseeb

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