关于 串口通讯 Mscomm32.ocx 控件的注册问题!

megaecho 2009-07-28 10:22:57
在开发网页时,界面中需要使用外设(密码键盘,读卡器等)的时候,使用了一个名为 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选项程序管理加载项中!
...全文
1452 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgjack88 2012-08-29
  • 打赏
  • 举报
回复
标记下,虽然不一定有用
bilt719621 2011-11-01
  • 打赏
  • 举报
回复
请在学满课时7个工作日后到财政局进行审核,有效期为60天。
勇者无敌 2009-08-14
  • 打赏
  • 举报
回复
厉害
megaecho 2009-07-30
  • 打赏
  • 举报
回复
看来这问题属于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恢复正常的串口通讯能力!
gengzhw 2009-07-28
  • 打赏
  • 举报
回复
Microsofr Communications Control version 6.0这个加载项就是指的 mscomm32.ocx 控件
cpp2017 2009-07-28
  • 打赏
  • 举报
回复
我也不知道有没有关系.或许有.

只要你功能能正常使用其他的有什么关系呢?
megaecho 2009-07-28
  • 打赏
  • 举报
回复
补充:
IE中Microsofr Communications Control version 6.0这个加载项与我需要使用的 串口通讯有什么关系么?
cpp2017 2009-07-28
  • 打赏
  • 举报
回复
不是说是ie自带的,是说是ie自动下载安装的控件就在些显示.



<object codebase="a.cab#version=1,0.0.1"

如果ie自动安装了这个cab中的ocx就会在此显示.
megaecho 2009-07-28
  • 打赏
  • 举报
回复
谢谢 cpp2017的回答!
你的意思是说 Microsofr Communications Control version 6.0 这个加载项,应该是IE自己带的?而不是我 通过
@Regsvr32 Mscomm32.ocx
@mscomm.reg
这样的注册方式能够加入的?
cpp2017 2009-07-28
  • 打赏
  • 举报
回复
ie中的显示的是通过ie自动注册的控件,一般是做成cab包后在ie上安装的,
其他方式注册的com组件是不会在此显示的.
megaecho 2009-07-28
  • 打赏
  • 举报
回复
谢谢大家的回答!

现在的问题仍然存在,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 这个控件!?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧