关于MSCOMM32.OCX控件的使用

转载 2012年03月23日 10:17:59

公司的一个产品,SilverLight开发的,要用热敏打印机(COM口的),所以才跟MSCOMM32.ocx打上交道。这玩意儿是有安全漏洞的,所以在XP里,微软已经不提供了,而且,有一个安全补丁,编号忘记了,用来防止IE加载它。也就是说,即使拷贝了文件,注册了,等等,不搞定这个补丁也是不成的。折腾了两天,看了好多网页,终于算是弄好了。下面说下要点。


环境:XP+IE 6

0、先备一个测试文档,如果用IE打开这个文档,并能够驱动打印机,那么说明控件加载没问题。源码在下面。存成一个html文件就行。

<html>
< head>
< meta http-equiv="Content-Type" content="text/html; charset=utf-8">
< meta http-equiv="Content-Language" content="en-us">
< title>Test Print</title>
< /head>
< script language="javascript">
function init(){document.all.printport.PortOpen = true; }
function doPrint(printmsg){ document.all.printport.Output = printmsg + "\r\n" + "\r\n" + "\r\n" + "\r\n"; }
function pageEnd(){
document.all.printport.PortOpen = false;
}
< /script>
< body onload='init();' onunload='pageEnd();'>
< form method="POST" action="--WEBBOT-SELF--">
<p><textarea rows="21" name="S1" cols="86"></textarea></p>
<p><input type="button" value="Print" name="B1" onclick='doPrint(document.all.S1.value);'></p>
<p><object id="printport" classid="clsid:648A5600-2C6E-101B-82B6-000000000014" style="display:none">
<param name="CommPort" value="1">
<param name="DTREnable" value="0">
<param name="Handshaking" value="0">
<param name="InBufferSize" value="1024">
<param name="InputLen" value="0">
<param name="NullDiscard" value="0">
<param name="OutBufferSize" value="512">
<param name="ParityReplace" value="63">
<param name="RThreshold" value="0">
<param name="RTSEnable" value="0">
<param name="BaudRate" value="9600">
<param name="ParitySetting" value="0">
<param name="DataBits" value="8">
<param name="StopBits" value="0">
<param name="SThreshold" value="0">
<param name="EOFEnable" value="0">
<param name="InputMode" value="0">
</object></p>
< /form>
< /body>
< /html>

1、先导入下面的注册表文件,把安全补丁写入项卸载掉。

Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}]
[-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 "HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v "" /d "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" /f
pause

注意,批处理文件所在目录下一定要放一个MSCOMM32.OCX,否则会报错

3、用IE打开前文第0步的html文件,会有提示,说明有ActiveX控件,同意载入就行了。这时候,应该能够打印了。


其它的:

--有些PC上现在已经没有COM口了,一般的做法是将COM设备通过一个COM转USB的转接头联入PC。此时推荐用自动分配的COM口号,改成别的,有可能驱动不了;

--Windows 7 x64下没弄成;

--XP+IE 7 也没成功;


另外,感谢网上写帖子解决此问题的人,记不住名字了,但上面写的都是从他们的文章里看来的。


转载: http://blog.csdn.net/anod/article/details/6663245


VS2013学习笔记之MFC添加MSCOMM控件

教程:图解流程VS2013   添加MSCOMM控件 在VS2008后,就没有MSCOMM控件了,用户想用只能手动添加,现在总结一下。 一步、下载Verision 6.0的MSCO...
  • sinat_23338865
  • sinat_23338865
  • 2016年08月09日 18:00
  • 2723

web中加载mscomm32.ocx控件

在web中加载mscomm32.ocx控件可以实现在网页中读取串口数据的功能。在网上找到很多相关的代码,但是试过之后不能用。经过摸索,发现窍门,就在注册控件的方法上。 注册如下: copy mscom...
  • chinayu2007
  • chinayu2007
  • 2016年11月07日 09:21
  • 1552

win10系统安装mscomm32.ocx控件

最近在用vs2010做一个串口通信的MFC,但是发现没有找到通信控件,以为是安装的vs2010出了问题,于是重新安装了一个vs2013尝尝新,但是安装完后还是没有找到这个通信控件。百度一翻后才知道电脑...
  • ywxk2016
  • ywxk2016
  • 2017年12月29日 19:43
  • 181

关于MSCOMM32.OCX控件的使用

公司的一个产品,SilverLight开发的,要用热敏打印机(COM口的),所以才跟MSCOMM32.ocx打上交道。这玩意儿是有安全漏洞的,所以在XP里,微软已经不提供了,而且,有一个安全补丁,编号...
  • anod
  • anod
  • 2011年08月05日 15:29
  • 3588

MSCOMM32控件注册的两种办法

我们在使用串口调试界面等的一些控制界面时常常会遇到MSComm32.OCX不能正常注册的错误消息,这种情况一般出现在Windows7版本下,这说明MSCOMM32没注册,我们可以选择两种方法去解决。希...
  • u013457167
  • u013457167
  • 2015年05月04日 23:12
  • 7212

解决Win10中MSCOMM32.ocx没注册问题

下载mscomm32.ocx ,下载地址  32位放在Windows/System32 下,64位放在Windows/SysWOW64下,然后在对应目录  下找到cmd.exe文件  右键--管理员身...
  • mylovepwy
  • mylovepwy
  • 2015年12月09日 17:25
  • 11461

问题解决——基于MSCOMM32.OCX控件的类在客户机不能创建控件

大家不要笑我了,我不喜欢用那个人家写的串口类
  • wlsgzl
  • wlsgzl
  • 2014年11月21日 16:35
  • 2314

解决在WIN7 64位系统下无法注册comdlg32.ocx、mscomm32.ocx等的控件的问题

Component 'MSCOMCTL.OCX' or one of its dependencies not correctly  registered: a file is missing or ...
  • lucky_liuxiang
  • lucky_liuxiang
  • 2015年08月03日 16:31
  • 5352

JavaScript串口(通过vb的MSCOMM32.OCX控件)

我的电脑已经安装vb环境,主要是MSCOMM32.OCX文件已经存在         JavaScript串口(通过vb的MSCOMM32.OCX控件)             //重写mscomm控...
  • s_ware
  • s_ware
  • 2007年10月31日 17:40
  • 5759

Win7 MSCOMM32.ocx 注册

接有一个装酒的项目用串口测流量,想到N多年前用过MSCOMM32.ocx控件,在电脑上搜了一下,居然没有,google后才知道,VC6有这个控件,VC2008没有这个控件。从网上下一个,居然是病毒ht...
  • hhhh63
  • hhhh63
  • 2010年08月28日 10:57
  • 16211
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于MSCOMM32.OCX控件的使用
举报原因:
原因补充:

(最多只允许输入30个字)