VB6开发 用户控件OCX ,在IE网页中调用
比如 用户控件名为 Cti_Client.ocx
一、安装VB运行环境
方法1 用VB6 打包 或 用 SetupFactory 7.0.1 打包工具
方法2 直接安装 VB6
二、注册OCX
1.将 Cti_Client.ocx 手动复制到 System32目录下
或 用 *.bat 执行 copy Cti_Client.ocx %windir%\system32\Cti_Client.ocx
2.在运行中 输入 cmd ,进到 system32目录下 执行 regsvr32 Cti_Client1100504.ocx
或 用 *.bat 执行 regsvr32 %windir%\system32\Cti_Client1100504.ocx
注:win7 sp1 64位 IE11 亲测好用 方法
将 CtiClient.ocx 和 CtiClient.oca 两个文件 复制到
c:\windows\system32\ 和 c:\windows\SysWOW64目录下
进到 system32目录下 找cmd右键用 管理员运行
提示注册成功
三、新建 index.html 代码如下
<OBJECT ID="CtiClient" CLASSID="CLSID:5C506FA6-F244-4534-A1CA-58BA002A889C" CODEBASE="CtiClient.CAB#version=1,0,0,0" height="300px" width="400px"> </OBJECT>
其中 CLASSID 在注册表中 查找
在运行中 输入 regedit 进入注册表
输入ocx的文件名 进行查找
注:这个 CLASSID 可能会有多个,逐个试试
用IE打开 index.html 后,有风险提示,点允许阻止的内容
在 IE 安全中 将 允许 ActiveX 控件 和 JavaSrcipt 权限打开
在网页中就能显示 OCX控件了
Html代码
<td> <table> <tr> <td> <OBJECT ID="CtiClient" CLASSID="CLSID:5C506FA6-F244-4534-A1CA-58BA002A889C" CODEBASE="CtiClient.CAB#version=1,0,0,0" height="300px" width="400px"> </OBJECT> <br> <a href="javascript:ocxWebSocketInit()" >ocxWebSocketInit</a> <br> <a href="javascript:ocxWebSocketOpen()" >ocxWebSocketOpen</a> <br> <a href="javascript:ocxWebSocketClose()" >ocxWebSocketClose</a> <br> <input type="text" id="txtSendMsg" name="txtSendMsg" style="width:200px;" value="@&l_login :1005,1005,1005"></input> <button type="button" style="width:80px;" onclick='ocxWebSocketSendMsg(document.getElementById("txtSendMsg").value);' >SendMsg</button> <br> <h5 class="panel-title">OCX收到消息</h5> <div id="div_OcxMsg" style="height:350px;width:400px;overflow:auto;background-color:#F5F5F5;"><h3> </h3></div> </td> </tr> </table> </td> </tr> </table> <script type="text/javascript"> //全局变量----------------------------------- var _ocxIsWebSocketInit="false";//ocx不能初始化二次 var _strAgentName ="1005";// GET['AgentName']; var _strPwd="1005";// GET['Pwd']; var _strExtTel="1005";//GET['ExtTel'];//分机号码 LAPTOP-QURTS17G var _strServiceIp='192.168.1.8';//Cti服务器IP地地址 var _strServiceIp_index=_strServiceIp+':5011/chat/'; document.getElementById('txtAgentName').value =_strAgentName; </script> <script type="text/javascript"> //测试用 function ocxWebSocketInit() { //var url = 'ws://192.168.1.8:5011/chat/'; CtiClient.WebSocketInit(_strServiceIp_index); _ocxIsWebSocketInit=true; } function ocxWebSocketOpen() { CtiClient.WebSocketOpen(); } function ocxWebSocketClose() { CtiClient.WebSocketClose(); } //发送消息 function ocxWebSocketSendMsg(strSendMsg){ try { //alert(strSendMsg); //console.log(strSendMsg);//调试 CtiClient.WebSocketSendMsg(strSendMsg);//发送 SocketMsgListAdd( 'send', strSendMsg);//显示 } catch (ex) { alert('ocxWebSocketSendMsg() 发送消息时出错! '+ strSendMsg+ ' '+ex); } } //显示消息 function ocxShowMsg(strMsg){ try { //握手不显示 /* if(strMsg=="@&c_handrequest:"){ return; } if(strMsg=="@&c_handok"){ return; }*/ //<p>显示方式 if(document.getElementById("div_OcxMsg").innerHTML.length>2000)//清空 { document.getElementById("div_OcxMsg").innerHTML=""; } if(document.getElementById("div_OcxMsg").innerHTML==""){ document.getElementById("div_OcxMsg").innerHTML=strMsg; }else{ document.getElementById("div_OcxMsg").innerHTML=document.getElementById("div_OcxMsg").innerHTML +"</br>" +strMsg; } } catch (ex) { alert('显示Ocx WebSocket消息时出错! ocxShowMsg ' + strMsg + ' '+ex); } } </script> <!-- CtiClient控件 收到消息事件 --> <SCRIPT type="text/javascript" FOR="CtiClient" EVENT="eCtiWebSocketRec(strMsg)" > ocxShowMsg(strMsg);//ocx收消息 显示 仅测试用 SocketMsgListAdd( 'rec', strMsg);//收发消息 显示 RecTcpMessage(strMsg);//CtiMessage.js 处理服务器收到的消息 </SCRIPT> <!-- CtiClient控件 连接成功事件 --> <SCRIPT type="text/javascript" FOR="CtiClient" EVENT="eCtiWebSocketOpen(strMsg)" > ocxShowMsg(strMsg);//ocx收消息 显示 仅测试用 SocketMsgListAdd( 'rec', strMsg);//收发消息 显示 </SCRIPT> <!-- CtiClient控件 关闭事件 --> <SCRIPT type="text/javascript" FOR="CtiClient" EVENT="eCtiWebSocketClose(strMsg)" > ocxShowMsg(strMsg);//ocx收消息 显示 仅测试用 SocketMsgListAdd( 'rec', strMsg);//收发消息 显示 </SCRIPT> <!-- CtiClient控件 Error事件 --> <SCRIPT type="text/javascript" FOR="CtiClient" EVENT="eCtiWebSocketError(strMsg)" > ocxShowMsg(strMsg);//ocx收消息 显示 仅测试用 SocketMsgListAdd( 'rec', strMsg);//收发消息 显示 </SCRIPT>