在开发网页时,界面中需要使用外设(密码键盘,读卡器等)的时候,使用了一个名为 MSCOMM32.OCX 的控件!成功注册控件之后,js程序中,使用以下这句对其进行引用
document.write("<OBJECT id='MSComm1' CLASSID='clsid:648A5600-2C6E-101B-82B6-000000000014' codebase='MSCOMM32.OCX' type='application/x-oleobject' style='LEFT:   54px;   TOP:   14px'  style='display:none' > ");
同时在IE的 工具-->Internet选项-->程序-->管理加载项... 中,应该要存在一个名为 Microsofr Communications Control version 6.0 的被加载控件项 —— 表明当前IE正常的加载了这个ActiveX控件,支持对串口的控制。现在的问题是:
控件MSCOMM32.OCX的注册是成功的
注册脚本如下:
@rem 注册控件
@copy Mscomm32.ocx %windir%
@copy Mscomm32.ocx %windir%\system32
@Regsvr32 Mscomm32.ocx
@mscomm.reg
@regsvr32 actxprxy.dll
@regsvr32 shdocvw.dll
@rem 重新启动
@ECHO OFF & cd/d %temp% & echo [version] > {out}.inf
@(set inf=InstallHinfSection DefaultInstall)
@echo signature=$chicago$ >> {out}.inf
@echo [defaultinstall] >> {out}.inf
@rundll32 setupapi,%inf% 1 %temp%\{out}.inf其中mscomm.reg内容如下:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905] 
@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun"
但是IE的“附加项”中却看不见 Microsofr Communications Control version 6.0 
 
(本来应该有“Microsofr Communications Control version 6.0”)

请问:谁知道如何将该项增加到 IE 工具Internet选项程序管理加载项中!

解决方案 »

  1.   

    ie中的显示的是通过ie自动注册的控件,一般是做成cab包后在ie上安装的,
    其他方式注册的com组件是不会在此显示的.
      

  2.   

    谢谢 cpp2017的回答!
    你的意思是说 Microsofr Communications Control version 6.0 这个加载项,应该是IE自己带的?而不是我 通过 
    @Regsvr32 Mscomm32.ocx 
    @mscomm.reg
    这样的注册方式能够加入的?
      

  3.   

    不是说是ie自带的,是说是ie自动下载安装的控件就在些显示.如<object codebase="a.cab#version=1,0.0.1"如果ie自动安装了这个cab中的ocx就会在此显示.
      

  4.   

    补充:
    IE中Microsofr Communications Control version 6.0这个加载项与我需要使用的 串口通讯有什么关系么?
      

  5.   

    Microsofr Communications Control version 6.0这个加载项就是指的 mscomm32.ocx 控件
      

  6.   

    谢谢大家的回答!现在的问题仍然存在,MSCOMM32.OCX 控件注册是成功的!
    如下:对应的目录下也是存在MSCOMM32.OCX的
    如下:
    但是因为IE中,工具-->Inter选项-->程序-->管理加载项...  里面仍然没有“Microsofr Communications Control version 6.0”这一项显示,所以IE还是未能正确加载MSCOMM32.OCX中这个串口控件,导致我的js代码中无法对接入客户端计算接串口的外设进行操作!注: 本人在IE6 和IE7 上面均出现以上问题!现在我想请教各位的是:谁知道,IE中如何增加 Microsofr Communications Control version 6.0 这个控件!?
      

  7.   

    看来这问题属于win操作系统漏洞,具体原因不明,但是可以肯定的是通过IE加载的ActiveX控件被莫名删除,导致了应用不能驱动外设!
    解决方法如下:
    1.删除原机器中的MSCOMM32.OCX控件
      -HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905
    2.再次注册控件
      copy mscomm*.* %windir%\system32\ /y
      Regsvr32 %windir%\system32\mscomm32.ocx /s
      Regsvr32 %windir%\system32\actxprxy.dll /s
      Regsvr32 %windir%\system32\shdocvw.dll /s
      reg add "HKCR\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v "" /d "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" /f
      pause
      注册后重启机器
    3.下载 IE7(ie7-windowsxp-x86-chs.exe ),并重新安装,成功安装后需再次重启,紧接着删除IE7——此步骤的目的主要是让IE7覆盖之前win系统中的IE版本,使用工具卸载IE7后,win系统自动恢复原来IE版本时会重新加载附加项,此时 即可让 “Microsofr Communications Control version 6.0”控件正常加载!4.此时需要删除3中安装ie7时留下的注册表信息——防止双击IE时会自动产生IE快捷方式的bug
      reg delete "HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\shell\OpenHomePage" /v "LegacyDisable" /f至此IE恢复正常的串口通讯能力!