问题:
Microsoft Office 2010 产品(或更高版本)安装的更新会破坏 MSCOMCTL.ocx 和 COMCTL32.ocx 的兼容性。不幸的是,这会影响许多其他程序,例如 Visual Basic 6 SP6 甚至 Oracle Virtual Box v5。实际问题是HKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0
注册表项。您可以在此处找到有关此问题的详细背景信息。
这是另一个可行的解决方案:
该解决方案假定您没有通过删除、替换和重新注册 MSCOMCTL.ocx 和 COMCTL32.ocx 来损坏您的注册表,而无需取消注册 Office 补丁文件。
创建一个名为fix.cmd的批处理文件并将以下命令放入其中:
regsvr32 /s /u %windir%\SysWOW64\comctl32.ocx
regsvr32 /s /u %windir%\SysWOW64\mscomctl.ocx
del /y %windir%\SysWOW64\comctl32.ocx
del /y %windir%\SysWOW64\mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%\SysWOW64\msdatsrc.tlb
从Visual Basic 6.0 Service Pack 6 的安全更新:2012 年 8 月 14 日下载msi 文件并将其重命名为KB2708437.msi。
注意:Service Pack 6 下载的直接链接位于此处。
运行fix.cmd,问题就解决了!
fix.cmd 所做的是正确取消注册,然后删除当前的 MSCOMCTL.ocx 和 COMCTL32.ocx 文件,然后应用最新的 Visual Basic 6 SP6 汇总补丁。事实上,该脚本强制安装补丁,然后通过更新每个文件重新安装,无论版本如何。最后它注册了 msdatsrc.tlb 类型库。
请让我知道这是否适合您。
==================================================== =====================
高级解决方案:
但是,如果您不小心损坏了注册表,则需要获取尽可能多的 MSCOMCTL.ocx 和 COMCTL32.ocx 版本。然后你需要从新版本开始,回到旧版本,注册和注销ocx 文件。
MSCOMCTL.ocx 的最新版本是2012 年 5 月的6.1.98.39 (v2.1),它更可能是安装在您的系统上并导致所有问题的版本。
最旧的(旧版)版本是 1998 年6.1.97.82 (v2.0)随 Visual Basic 6 提供的版本,或者 2005 年 4 月随早期服务包6.1.97.86提供的版本。
例子:
regsvr32 /s comctl32.6.0.98.34.ocx
regsvr32 /s /u comctl32.6.0.98.34.ocx
regsvr32 /s comctl32.6.0.81.6.ocx
regsvr32 /s /u comctl32.6.0.81.6.ocx
regsvr32 /s comctl32.6.0.81.5.ocx
regsvr32 /s /u comctl32.6.0.81.5.ocx
regsvr32 /s mscomctl.6.1.98.39.(2.1).ocx
regsvr32 /s /u mscomctl.6.1.98.39.(2.1).ocx
regsvr32 /s mscomctl.6.1.98.34.ocx
regsvr32 /s /u mscomctl.6.1.98.34.ocx
regsvr32 /s mscomctl.6.1.97.86.ocx
regsvr32 /s /u mscomctl.6.1.97.86.ocx
regsvr32 /s mscomctl.6.1.97.82.(2.0).ocx
regsvr32 /s /u mscomctl.6.1.97.82.(2.0).ocx
regsvr32 /s /u %windir%\SysWOW64\comctl32.ocx
regsvr32 /s /u %windir%\SysWOW64\mscomctl.ocx
del /q %windir%\SysWOW64\comctl32.ocx
del /q %windir%\SysWOW64\mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%\SysWOW64\msdatsrc.tlb
警告:
不要在互联网上搜索这些文件。要查找不同版本的 OCX 文件,请下载并提取官方 Microsoft 安装程序包,如下所示:
2005 年 4 月 - 微软 KB896559
2008 年 12 月 - 微软 KB926857
2009 年 4 月 - 微软 KB957924
2012 年 5 月 - 微软 KB2708437
还建议运行CCleaner 4.0 或更高版本来修复您计算机上的任何其他 ActiveX 相关问题。