在 windows 10 运行 Visual Basic 6.0 使用 shockwave 控件

作者:minglang.org

Windows 10 可以运行 Visual Basic 6.0 ,并且可以使用shockwave控件早期版本。

明朗单词通,是用Visual Basic 6.0和Micromedia Flash 6两个工具编写的。时至2016年,我仍然用这两个工具修改它。它们的功能绰绰有余。就我自己的体验看,vb6 在windows 10上还是可以运行的。安装时,以管理员身份运行安装程序,选择自定义安装,不要勾选“数据连接”,这样安装过程不会报错。如果勾选“数据连接”,也不要紧:最后安装画面会持续不动,强行关闭就行。安装后,把VB可执行文件的“属性-兼容性”设置为“windows xp park 3”兼容,勾选“以管理员身份运行”。
在VB中使用shockwave控件会遇到一点麻烦。在工程的form窗口引入shockwave较新版本的控件(windows 10 自带的名称为flash.ocx)之后,保存vbp文件时,会报错,无法保存。似乎vb只支持较早版本的shockwave控件,比如支持flash8b.ocx。没有必须的准备,要在“工程-部件”窗口成功引入flash8b.ocx是不可能的。以下做法无效:
在Dos窗口运行 regsvr32 C:\windows\sysWOW64\flash8b.ocx (假定有flash8b.ocx位于此位置),会报告注册成功。但于事无补。
执行flashplayer卸载程序,然后执行flash 6, flash 8 ,flash 9 player安装文件,会报告注册错误。最新版的D卸载程序uninstall_flash_player.exe也卸载不干净,除非能找到所有版本的卸载程序。
完整的falsh MX,能成功安装,正常运行,但安装之后 flash6.ocx 仍不能在vb环境下工作。
我曾经采取的有效做法是:
在注册表中搜索 包含“flash.ocx”的数据,大部分改成“C:\windows\sysWOW64\flash8b.ocx”:项目名中含有“InprocServer32”都改,项目名中含有“ToolboxBitmap32”,不用改。在windows 10系统,这个修改是个体力活儿,要花费半个小时。几乎对每个项目都要进行授权操作然后才能更改。
另外,搜索含有“flashplayer”的项目,将版本信息都删除。此操作是否必要,未作对比确认。Chrome自带flashplayer插件,不受这里设置的影响。
突然有一天,发现,在vb环境,修改含flash控件的窗体后又无法保存了。查注册表,flash8b.ocx全部被改成flash.ocx了。是windows自动更新造成的。卸载更新,无效。
至于无法保存,可以通过用文本文件编辑器代劳的办法回避问题。vb环境下编译生成的可执行文件似乎运行正常。在未再次修改注册表的情况下,继续使用vb数日。后来确认,4.31,4.32两个版本的flash控件在部分电脑上不透明,用户重新设置背景颜色时无法改变flash控件所在区域的背景颜色。判断:这是错误编译造成的。
某日,用U盘启动PE系统,无意中发现,里面有个小工具,可以把分辨率调到默认分辨率,看起来很舒服。还有个注册表编辑器。可以编辑任意系统盘windows文件夹内的注册表文件。编辑非运行系统的注册表,就不用申请权限了,几分钟搞定。重启电脑,晚上准备关机时,windows报告更新flashplayer时出错。这是一个意想不到的好消息。

发表评论

电子邮件地址不会被公开。