作为一枚35+一只花的老男人,求学之初就接触了 VB6 ,之后就日久生情渐渐地离不开她了。

虽然她年纪有点大,但她仍不失其独特的魅力,她的优秀和光芒是谁也掩盖不了的!

日常工作中经常用到她,N年前也曾推荐给过一些小伙伴们,不过多数情况会被嘲笑一番并嗤之以鼻地拒绝。

现在都迷上 PyGo 之类的小姑凉,这人老珠黄的玩意干吗还抱着不放?

我是个有涵养的绅士,我不和你们一般见识,所以我只能把一些复杂情绪放在了心里,直到有一天,我看到了一篇秘笈......


我仔仔细细地看完了秘笈,写得并不算太长,里面写的内容也和我一样,对那些不识货的小朋友宣泄了自己内心的气愤情绪。

然而在文中却有一处震惊到了我,那就是直到今天官方实际上还在默默地为 VB6 提供支持,当然只是暗中保护,没有放到明面上。

纳呢?真的假的啊?

一语惊醒梦中人,双手莫名地颤抖了起来,我顾上这些了,疯狂地上网寻找着证据,果不其然,在官网上看到这样的画面。


官方为了让 VB6 继续展现她的魅力,没想到在新发布的 Windows 11 上仍然给予了大力支持!

谁说 VB6 凉了? VB6 特么还活着!不仅活着,还活得更好了!

好了,不激动,年纪大了小心脏有点受不了,见笑见笑哈!


除了 VB6 仍然可以在 Windows 11 上愉快地奔跑外,实际上为了保证其稳定性,官方还秘密发布了新版的累积更新补丁。

哈哈,人们总是对于那些被暗中保护的人物有着别样的眼光,要不咱就来试试看,把累积更新给她安上!

不过先别慌,按照秘笈所述,一般的安装方法还不能成功应用更新,似乎只能按部就班安装原版。

不信你可以看,不论是哪个更新她都会报错哦!


说什么必须得先安装上 Microsoft Visual Basic 6.0 SP6 产品,我想问一下,你是什么时候失明的,我明明安装了好吧?


所以说,那篇秘笈并没有对我们扯谎,应该是有某种神秘的力量在背后操控着这一切。

好吧,年纪大了看开些,总不能硬碰硬,要不我先来个原版安装试试?


下载原版 VB6 安装包以及新版 SP6 累积更新

Itellyou.cn 找到原版 Visual Basic 6.0 并将其下载下来。


然后找到官网关于 VB6 的累积更新 SP6 补丁包。


2012年8月16日版本SP6


2021年3月23日版本SP6


实际上我们只需要应用最新的也就是2021年版的补丁即可。


正确的原版安装姿势

安装原版 VB6 主程序

为避免安装程序在最后更新系统时卡死,我们需要选择自定义安装而不是默认常规安装,与此同时将 数据访问 一项勾选去掉。

如果弹出警告也别担心,后面你就会知道这就是个唬人的。


第一步顺利安装完成后点击 重新启动 Windows(R)

注意,如果没有像前面说的去掉 数据访问 ,那么你可能看不到这个画面,也无法结束安装进程。


重新启动后如果你还不放心,那么请再次启动安装程序,并选择 添加/删除(A)...


这时你会惊奇地发现,数据访问 这玩意不知道什么时候居然已经偷摸给安装上了!


好了,也不用奇怪,也不用爆粗口,我们先来看看她的版本号吧!

切记切记,务必以管理员身份启动 VB6 哦!

OK,我们看到当前 VB6 的版本不带有任何 SP ,左下角版本号显示为 8176


安装旧版 SP6 累积更新

这里要说明一下,这个 SP6 是指最先出口的版本,而不是指现在我们看到的最新2021年版的版本。

是的,SP6 早就有了,而且有很多,只是微软不定期翻着花样更新罢了,名字都叫 SP6

说白了我们现在这一步安装的是旧版的 SP6


好了,直接安装即可,有以前的原版安装的铺垫,此时安装 SP6 已经不会出错了。

注意不要替换组件。


接下来保留所有文件。


最后完成 SP6 的安装。


我们再来确认 VB6 此时的版本号。

可以看到已经有 SP6 了,并且左下角版本已经变为 9782


安装新版 SP6 累积更新

这里以 2021 年的 KB3096896 累积更新为例,我们尝试执行这个更新。

有了前面按部就班的原版安装做为基础,可以看到我们成功开启了更新运行界面。


之后自然是顺利安装,注册组件也没有任何问题啊!


好了,最后让我们一起见证一下这些更新有没有真正地应用到 VB6 中!

哎?怎么和前面的版本号是一样的呢?


一点变化都没有啊!不应该啊,怎么回事呢?

其实她是成功更新了的,只不过她更新的是一部分模块组件。

如果我们想要验证的话,可以有个变通的办法。

我们打开添加部件的窗口,找到 Micosoft Winsock Control 6.0 (SP6) 一项选中它并确定退出。


然后将这个 Winsock 控件添加到窗体上,并查看它的 关于 属性。

应用过更新的关于信息是下面这样的,版本 6.01.9839


而之前没有应用更新的关于信息则是下面这样的,版本 6.01.97821


通过版本对比我们就知道了,实际上有一部分组件是更新成功的。

原来是这么回事啊!

不过好像事情到这里并没有结束......


山寨版怎么办?

我相信应该有不少小伙伴真正使用的 VB6 版本多半是网络上流传甚广的各种山寨版本,比如什么迷你版之类的。

因其精简整合了不少有用的功能和工具而倍受大家的欢迎。

整合版 VB6 是真的香,也是很多小伙伴热爱 VB6 并入坑的理由之一。

难道这些所谓的山寨版就没有机会应用最新的累积更新了吗?


打开累积更新包,我们可以看到数十个大大小小的文件。

通常文件数量较小的情况下我们将这些诸如 OCX 文件放到系统目录下,然后手动将其注册到系统中即可开始使用。

但是真的要一个一个地手动注册吗?

累死人的事儿最好少干,人会麻的,想要省事少动手就得多动脑。

那要解决这个问题我们应该从哪里着手呢?


我们知道,这个累积更新包是以 MSI 格式发布的,这不就是微软自家的打包安装格式嘛!

于是我找来了一个分析 MSI 文件的工具(网上有很多随便下载),然后用工具打开了累积更新文件。

里面一大堆东西,我们怎么才能找到我们需要的东西呢?


首先,我们来寻找累积更新包在安装初始化时所需要判断的条件,也就是什么条件才能让它正常开始安装。

找了一会儿,有了!

除了安装包失败提示中告诉我们的需要有 SP6 之外,其实它还会检查 VB6 的实际安装路径 VB6PRODUCTDIR


就像下图所示,要是这些路径不存在或是有其他一些不正常问题时,那么我们只能被迫得到更新失败无法继续安装的提示。


不过我们通过仔细观察就会发现,这些路径被描述为一些注册表键值。

那么事情可能就变成这样了,我们就按图索骥来寻找一下这些路径它们实际的样子。

最后我在以下注册表路径中找到了相关的注册表项以及它们的键值。

注意,VB6 作为老前辈她可是 32 位运算出身,因此对于她的描述记录通常放在了 WOW6432Node 之下。

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio
 


相应的键值描述也就很清楚了。

  • VB6SP6Setup - 最新版本 latest6
  • VB6CommonDir - C:\Program Files (x86)\Microsoft Visual Studio\Common
  • VB6ProductDir - C:\Program Files (x86)\Microsoft Visual Studio\VB98


此外,安装包在更新的同时还会先将原先一些组件文件给备份起来,它还有几个备份路径我们也可以了解一下。

比如:

  • VB6ControlsBackupDir - C:\Program Files (x86)\Microsoft Visual Studio\Common\Tools\VB\Controls\Controls_Backup
  • VB6CabSourceDir - C:\Program Files (x86)\Microsoft Visual Studio\Common\Tools\VB\Cabinets


于是问题来了,既然累积更新安装是通过检查这些路径和参数来判断是否可以正常安装,那么我们能否让它假装确认OK从而顺利跳过检查继续安装进程呢?

多说无益,动手哈!


我先正常安装了迷你版的 VB6 ,然后按照前面说的一些前提条件设定好路径,在开始安装累积更新时它报了一个错。


这应该是备份路径的问题,经过测试修复路径后,最终可以顺利开启累积更新的安装进程。

在这里我将实际所需的注册表内容写成代码保存为 .reg 文件。


vb60sp6-kb2708437-x86-chs.msi.7z(9.26M)(2012/8/16)

下载链接:https://pan.baidu.com/s/1TpZkoQgZKLOZ2pUQnOcd0w

提取码:

输入阅读密码,解锁隐藏内容...



★扫码关注公众号, 发送【000914】获取阅读密码


vb60sp6-kb3096896-x86-chs.msi.7z(9.32M)(2021/3/23)

下载链接:https://pan.baidu.com/s/1mgfPuwAS9-q5PCmBHmDKmg

提取码:

输入阅读密码,解锁隐藏内容...



★扫码关注公众号, 发送【000914】获取阅读密码


修复迷你版VB6无法安装累积更新的问题.7z (28.6K)

下载链接:https://pan.baidu.com/s/1kYwvW3n7Vgy3xxBnngmb0g

提取码:

输入阅读密码,解锁隐藏内容...



★扫码关注公众号, 发送【000914】获取阅读密码


将上面的内容导入到注册表中后,我们再来安装累积更新便一点问题也没有了!

在完成更新后我又特意拿 MSHFlexGrid 控件来对比了一下。

更新前是这个版本:6.0(SP4)

更新后是这个版本:6.0(SP6)


当然了,对于其他的文件是否更新成功,如果有更多的时间我们也可以一一验证,通常我们可以优先验证我们工程项目中所用到的一些组件。

另外,安装成功的同时也验证了一件事情,就是秘笈中所说的必须安装原版才能安装累积更新,实际上是由于山寨版路径不同或缺失造成的,因此原版安装并不是必须的。

至此,流行的山寨版 VB6 也能愉快地安装上累积更新啦!


写在最后

虽然似乎官方声明早已不再支持 VB6 ,嘴上这么说,但毕竟身体很诚实,时不时地还给一些模块组件更新一下。

至于为什么直到现在官方还在做着这样一件事,聪明的你应该也能秒懂,没有好处的事谁会费力不讨好地反复去做呢,对吧?

因此,即使是在当前全新的 Windows 11 粉墨登场之时,官方也毅然决然地暗中给予了 VB6 "升级的可能,不得不说买的永远没有卖的精啊!

好了,还在使用 VB6 的小伙伴们可以继续在新平台上展现你们的魅力了!

赶快应用新版累积更新让你的 VB6 更进一步吧,祝你们安装顺利!


扫码关注@网管小贾,阅读更多

网管小贾的博客 / www.sysadm.cc



暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接