mscomm32.ocx 注册 和 web 调用案例
注册mscomm32.ocx步骤:
1、把 mscomm32.ocx 移动到 windows/System32 或 System64 里 (看系统位数)
2、以管理员身份运行cmd,输入:regsvr32 mscomm32ocx (mscomm32.ocx路径要对)
控件不能加载
ie安全级别设置IE选项--安全--自定义级别--ActiveX控件和插件--均选“启用”或者“提示”。
注:如果成功注册了msccomm32.ocx, 并且 ie浏览器 配置OK,但 web就是无法调用,可考虑安装个visual studio。
附件:https://download.csdn.net/download/u011396080/10619796
下面是 html 测试代码
<html> <head>
<title>JavaScript串口测试</title><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /><SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript> <!-- function MSComm1_OnComm() { alert();switch(MSComm1.CommEvent){case 1:{ window.alert("Send OK!"); break;} //发送事件case 2: { Receive();break;} //接收事件default: alert("Event Raised!"+MSComm1.CommEvent);;} } //--> </SCRIPT><SCRIPT LANGUAGE=javascript FOR=MSComm1 EVENT=OnComm> <!--// MSComm1控件每遇到 OnComm 事件就调用 MSComm1_OnComm()函数MSComm1_OnComm()//--> </SCRIPT> <script language="JavaScript" type="text/JavaScript"> <!-- String.prototype.Blength = function(){ var arr = this.match(/[^\x00-\xff]/ig); return arr == null ? this.length : this.length + arr.length; } function OperatePort() {if(MSComm1.PortOpen==true){try{MSComm1.PortOpen=false;document.getElementById("OperateButton").value="打开串口";}catch(ex){alert(ex.message);} }else{try{ MSComm1.PortOpen=true;document.getElementById("OperateButton").value="关闭串口";}catch(ex){alert(ex.message);} }}function ConfigPort(){alert("xxxxxxxxxxxxxxxxx"+MSComm1.PortOpen);if(MSComm1.PortOpen==false){ try{MSComm1.CommPort=document.getElementById("ComName").value;alert(MSComm1.CommPort)MSComm1.Settings=document.getElementById("BaudRate").value.toString()+","+document.getElementById("CheckBit").value.toString()+","+document.getElementById("DataBits").value.toString()+","+document.getElementById("StopBits").value.toString(); MSComm1.OutBufferCount =0; //清空发送缓冲区MSComm1.InBufferCount = 0; //滑空接收缓冲区 alert("已配置串口COM"+MSComm1.CommPort+"\n 参数:"+MSComm1.Settings); }catch(ex){alert(ex.message);}}else{ alert("请先关闭串口后再设置!");}}function Send(){//alert(document.getElementById("txtSend").value);var orgstr=document.getElementById("txtSend").value; var newstr="";var hexflag=document.getElementById("isSendHex").checked;if(hexflag&&orgstr!=""){if(orgstr.substr(0,2)=="0x"||orgstr.substr(0,2)=="0X") orgstr=orgstr.substring(2,orgstr.length);if(orgstr.length%2!=0) orgstr="0"+orgstr; // TODO str2hex判断16进制的方法alert(str2hex(orgstr));if((newstr=str2hex(orgstr))=="") {alert("错误的16进制数");return false;}}try{//MSComm1.Output=hexflag?newstr:orgstr; MSComm1.Output = "AA 00 03 88 18 0A 99 BB";}catch(ex) {alert(ex.message);}}function Receive(){ //alert("InBufferCount::"+MSComm1.InBufferCount);document.getElementById("txtReceive").value += MSComm1.Input; //alert("InBufferCount::"+MSComm1.InBufferCount); }function ClearReceived(){document.getElementById("txtReceive").innerText="";} // 转化成16进制function str2hex(s) {var a,b,d;var hexStr = '';for (var i=0; i < s.length; i++) {d = s.charCodeAt(i);a = d % 16;b = (d - a)/16;hexStr += '%' + "0123456789ABCDEF".charAt(b) + "0123456789ABCDEF".charAt(a);}return hexStr;}function charCode(v){return String.fromCharCode(v);}function checkInstallOCx() {try{ var obj = new ActiveXObject("MSCOMMLib.MSComm.1"); alert("已经注册");} catch(e) { alert(e);alert("没有注册");} }--> </script> </head>
<body><form name="form1"> <fieldset style="width:200px;height:250px;text-align:center;">
<legend>配置串口</legend><div style="float:left;width:200px"> <br/> <span>串口号:</span><select name="ComName" id="ComName" style="width:75px" ><option value="1" >COM1</option><option value="2" >COM2</option><option value="3" >COM3</option><option value="4" selected >COM4</option><option value="5" >COM5</option><option value="6" >COM6</option> </select> <br/> <span>波特率:</span><select name="BaudRate" id="BaudRate" style="width:75px" ><option value="9600" selected >9600</option><option value="57600" >57600</option><option value="115200" >115200</option> </select> <br/><span>校验位:</span><select name="CheckBit" id="CheckBit" style="width:75px" ><option value="N" selected >无NONE</option><option value="O" >奇ODD</option><option value="E" >偶EVEN</option> </select> <br/> <span>数据位:</span><input type=text id="DataBits" name="DataBits" value=8 style="width:75px;height:20px"><br/><span>停止位:</span><input type=text id="StopBits" name="StopBits" value=1 style="width:75px;height:20px"><br/><br/><input type="button" id="ConfigButton" style="width:80px;height:30px;font-size:13px" name="ConfigButton" value="配置串口" onClick="ConfigPort()"> <input type="button" id="OperateButton" style="width:80px;height:30px;font-size:13px" name="OperateButton" value="打开串口" onClick="OperatePort()"> </div>
</fieldset><fieldset style="width:200px;height:250px;text-align:center;">
<legend>发送区域</legend>
<div style="float:left;"><textarea id="txtSend" name="txtSend" style="width:200px;height:160px"></textarea> <br/><span><input id="isSendHex" name="isSendHex" type="checkbox" checked="0" />16进制</span><input type="button" id="SendButton" style="width:100px;height:30px" name="SendButton" value="发送" onClick="Send()">
</div>
</fieldset><fieldset style="width:200px;height:250px;text-align:center;">
<legend>接收区域</legend>
<div style="float:left;"><textarea id="txtReceive" READONLY=TRUE name="txtReceive" style="width:200px;height:160px"></textarea> <br/><span><input id="isReceiveHex" name="isReceiveHex" type="checkbox" />16进制</span><input type="button" id="ClearButton" style="width:100px;height:30px" name="ClearButton" value="清空" onClick="ClearReceived()">
</div>
</fieldset> </form> <OBJECT id=MSComm1 CLASSID="clsid:648A5600-2C6E-101B-82B6-000000000014"codebase="MSCOMM32.OCX" type="application/x-oleobject" style="LEFT:54px;TOP:14px" ><PARAM NAME="CommPort" VALUE="3"/> <PARAM NAME="DataBits" VALUE="8"/> <PARAM NAME="StopBits" VALUE="1"/> <PARAM NAME="BaudRate" VALUE="9600"/> <PARAM NAME="Settings" VALUE="9600,N,8,1"/> <PARAM NAME="RTSEnable" VALUE="1"/> <PARAM NAME="DTREnable" VALUE="1"/> <PARAM NAME="Handshaking" VALUE="0"/> <PARAM NAME="NullDiscard" VALUE="0"/> <PARAM NAME="ParityReplace" VALUE="?"/><PARAM NAME="EOFEnable" VALUE="0"/> <PARAM NAME="InputMode" VALUE="0"/> <PARAM NAME="InBufferSize" VALUE="1024"/> <PARAM NAME="InputLen" VALUE="0"/> <PARAM NAME="OutBufferSize" VALUE="512"/> <PARAM NAME="SThreshold" VALUE="0"/> <PARAM NAME="RThreshold" VALUE="1"/> </OBJECT><input type="button" value="注册测试" onclick="checkInstallOCx();"> </body>
</html>
mscomm32.ocx 注册 和 web 调用案例相关推荐
- 3.spring cloud + zookeeper注册中心 + Feign调用案例
3.spring cloud + zookeeper注册中心 + Feign调用案例 3.1.pom.xml定义 <?xml version="1.0" encoding=& ...
- Win7环境下MSCOMM32.OCX控件的使用
作者:iamlaosong 以前曾做个稽核重量的称重拍照软件,现在有部门要使用,说是用不起来,只好再捡起来试用一下. 试用发现Win7环境下串口无法使用(Error 8015---Could Not ...
- VC6.0制作OCX并web调用 .
1.打开VC6.0,新建工程,选择:MFC ActiveX ControlWizard,后面步骤默认即可: 2.在ClassView上,可以看到主要有**App\**Ctrl\**ProgPage几个 ...
- VC6.0制作OCX并web调用
1.打开VC6.0,新建工程,选择:MFC ActiveX ControlWizard,后面步骤默认即可: 2.在ClassView上,可以看到主要有**App\**Ctrl\**ProgPage几个 ...
- win10注册mscomm32.ocx失败
win10注册mscomm32.ocx失败 RegSvr32 模块"C:\Windows\SysWOW64\mscomm32.ocx"已加载,但对 DllRegisterServe ...
- 解决Win10中MSCOMM32.ocx没注册问题
下载mscomm32.ocx ,http://blog.csdn.net/mylovepwy/article/details/50239103 32位放在Windows/System32 下,64位放 ...
- WEB综合案例 黑马面面 day04 用户与角色绑定功能 登录用户菜单控制和权限效验
WEB综合案例 day04 用户与角色绑定功能 登录用户菜单控制和权限效验 1. 用户与角色 思路: 根据用户去找角色的信息,然后需要用到两个表的查询,在前端页面显示信息的时候用for:each通过遍 ...
- 通过WEB调用大华网络摄像头
通过WEB调用大华网络摄像头 1.要调用的大华摄像头为Dahua 大华DH-IPC-HFW2100P-0600B 网络摄像机 (白色),摄像头外形如下图所示 2.调用效果如下图所示 3.下载大华网络摄 ...
- [JAVA-周瑜]dubbo-Rpc调用案例代码解析
dubbo3.0-Rpc调用案例代码解析 根据周瑜所讲的Dubbo3.0视频原理解析视频和内容,对源码的内容进行总结分析.视频源为[Dubbo3.0]地表最强!Dubbo快速入门教程,通俗易懂(3 ...
- 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)
1.一个基于truffle-contract库实现的以太坊solidity智能合约调用案例! 2. 注意:truffle-contract库和web3.js使用nodej或import同时导入转码的时 ...
最新文章
- linux学习:文件属性(一)—— inode
- 从零开始编写自己的C#框架(25)——网站部署
- android lcd驱动框架,LCD驱动及Framebuffer相关(转载)
- 天玑机器人颈椎_天玑骨科手术机器人亮相机器人大会 误差不到1毫米
- 竖向图片插入_Word小技巧:让你的图片文字排版更有创意
- 神经网络优化算法总结【SGD】---【Adam】
- java容器doc_关于Java容器类学习心得体会.doc
- PCIe to AXI Translation——PCIe 内存空间到AXI内存空间的转换
- Java多线程学习十三:synchronized 和 Lock 区别以及孰优孰劣,如何选择?
- 利用Java制作背单词小应用
- 安装sql server 2008 management studio时,提示升级VS2008 到 SP1
- php redis 日志模式,Redis的PHP客户端
- oracle --union和union all
- mongodb oplog java_MongoDB oplog 深入剖析
- HTTP协议基础及报文抓包分析
- js基础知识总结大全
- Flink StreamingFileSink写入hdfs,文件一直处于inprogress
- TensorFlow——decay设置
- 127.0.0.1 已拒绝连接
- python删除excel指定行_python实现Excel删除特定行、拷贝指定行操作