关于MSCOMM32.OCX控件的使用
来源:互联网 发布:淘宝网店首页海报尺寸 编辑:程序博客网 时间:2024/06/05 05:18
公司的一个产品,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 也没成功;
另外,感谢网上写帖子解决此问题的人,记不住名字了,但上面写的都是从他们的文章里看来的。
- 关于MSCOMM32.OCX控件的使用
- 关于MSCOMM32.OCX控件的使用
- 关于使用MSCOMM32.OCX控件心得及js调用实例
- 串口通讯控件Mscomm32.ocx的应用
- win10下msadodc.ocx、mscomm32.ocx、MSDATLST.ocx等OCX控件的安装注册方法步骤
- 注册MSComm32.ocx串口控件
- JavaScript串口(通过vb的MSCOMM32.OCX控件)
- VS2010 没有串口控件 mscomm32.ocx
- 注册串口通讯控件MSCOMM32.OCX
- web中加载mscomm32.ocx控件
- 关于ocx控件的跨语言使用
- 关于WIN7下STCISP因MSCOMM32.OCX控件问题无法运行及解决方法
- 问题解决——基于MSCOMM32.OCX控件的类在客户机不能创建控件
- 如何解决MS串口通信控件MSCOMM32.OCX "建立空文档失败" 的问题?
- VS2010/MFC 入门编程七(基于MSCOMM32.OCX控件的串口编程)
- 解决在WIN7 64位系统下无法注册comdlg32.ocx、mscomm32.ocx等的控件的问题
- Mscomm32.ocx未注册的问题
- win7/8(32/64bit)系统下使用STC-ISP的问题与解决方法(MSCOMM32.OCX)
- POJ 1149 最大流/max flow
- java正则判断小数
- ActionScript代码小技巧
- vc配置文件的生成
- jquery.autocomplete 插件使用心得
- 关于MSCOMM32.OCX控件的使用
- 木马病毒:英国歌手Amy Winehouse临死前的最后影片,勿点
- hp打印机要安装
- 关于人生的十句经典的话!
- 如何批量设置MXD的数据源
- Linux, Mac下Latex的IDE
- ZOJ 1082 Stockbroker Grapevine【Bellman-Ford】
- S7-1200编译: 程序中存在地址模糊的对象
- Programming Optimization