vb6 - 在无法重新编译的情况下让 VB6 应用程序在 Windows 7 中运行

标签 vb6 windows-7 registry uac

我有一个 VB6 应用程序,它仍然引用一些旧的 VB5 库(dll、vbr、tlb 和 ocx)。我们遇到了一些奇怪的问题,比如它无法使用 advapi32.dll 读取注册表。我试过使用 UAC 权限运行该应用程序,但仍然不行。我们无法重新编译该应用程序,因为它有几个控件和组件无法下载并且不再受支持。任何想法(除了重写,因为我们已经在努力)表示赞赏。

补充一下,我们已经在 Windows XP Mode 中试用过此应用程序。但是,这是我这样做的“提示”:

  • 作为 vbFormCenter 和 vbModal 加载的窗口在双显示器之间居中。即使将它拖到其中一台显示器后,它也不记得模式应该在哪里。
  • 尝试随机打印时,最多需要 5 分钟才能吐出一份作业。这是因为(或者至少我认为这是原因)XP 模式机器也从主机加载打印机。
  • 某些 DCOM 通信随机出现缓慢
  • 通过 USB 连接的打印机只能在主机或 VM 上,不能同时在两者上,因为它使用直通。即便如此,您也不能“强制”应用程序允许连接打印机。
  • 较旧的应用程序(VB5 和 VB6)并不总是在调用 Application.Exit 时关闭。不知道为什么会这样,但是您可以打开一个表单并在单击按钮时调用 Exit sub,在 25 次中,有 10-20% 的时间它不会关闭。因此,无法将应用程序显示为主机上的子进程,因此无法将其杀死。

呸。这只是几个。

最佳答案

Windows 7 不支持 VB 5.0,但支持 VB 6.0,所以我猜这是你的问题。

这个问题的解决方案是运行一个 windows xp 虚拟机,而 windows 7 有一个使用 xp 模式执行此操作的非常轻松的过程。

检查,

http://www.microsoft.com/windows/virtual-pc/download.aspx

关于vb6 - 在无法重新编译的情况下让 VB6 应用程序在 Windows 7 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890695/

相关文章:

c#检查程序是否在启动时运行

windows-7 - 为什么 HKCR\pngfile 上下文菜单在 Windows XP 中有效,但在 Windows 7 中无效?

c# - 修复 MSI 卸载失败导致错误 2908 和 "UNKNOWN\Components"oprhaned 注册表项的答案

c++ - ActiveX 属性(从 Visual Basic 访问)是否可以在运行时按程序生成?

TLS1.2的VB6应用程序ado连接

vb6 - 替换vb6中的表单控件

asp.net - 密码保护 IIS 7.5 中的 ASP.NET Web 应用程序

.net - Windows 7 和 Windows 8 中的 ListBox 边距不一样

windows-server-2012-r2 - 可以创建 Scripting.FileSystemObject 64 位但不是 32 位

mysql - 具有 MYSQL 后端的 Ruby on Rails 中的虚拟属性和实例属性之间的区别