zoukankan      html  css  js  c++  java
  • Javascript和OCX的结合历程

    这种相对古老的调用方式主要用在Windows系列平台上的多种语言软件之间的合作。

    此次项目合作方式是,客户提供语音功能的OCX模块和VC++客户端软件,我需要在WEB软件中调用其中的接口开发相关功能,并且调用客户端软件。

    由于是研究型的项目,我花了一天时间成功的实现了软件调用(静态安装注册OCX),分享一下过程。

    ① 注册OCX到本机

    注册命令   :cmd.exe /c regsvr32.exe  my.ocx

    去注册命令:cmd.exe /c regsvr32.exe /u my.ocx

    ② 查看OCX注册结果

    执行regedit,打开注册表,搜索ocx的文件名,得到注册表项。

    右键导出注册表项到文件,得到如下的信息:

    1 Windows Registry Editor Version 5.00
    2 
    3 [HKEY_CLASSES_ROOTAppID{C8E251BB-1326-4870-9BF4-53593AE5B108}]
    4 @="my Control"

    ③ 在页面中初始化该控件

    1     <object id="myOcx" name="test" BORDER="0" WIDTH="300" HEIGHT="300"
    2         style="display: none"
    3         classid="clsid:C8E251BB-1326-4870-9BF4-53593AE5B108"
    4         onerror="onObjectError()">
    5     </object>

    onerror方法很重要,如果未能正确的引用刚刚注册的控件,会提示出错。

    SCRIPT438: 对象不支持“XX”属性或方法。

    这个错误查询一抓一大把,但是有效的支持却少之又少。

    本人此次遇到以下几个情况:

    1.页面引用错误的classid。

    2.OCX未实现安全接口。

    3.OCX未标记这段代码能被js调用。

    ④ 在页面中调用该控件

     1 function() {
     2     if (!window.ActiveXObject) {
     3         alert("对不起,证书登陆请使用IE浏览器!");
     4         return;
     5     }
     6     var myObj = document.getElementById("myOcx");
     7     var name = "201";
     8     var passwd = "201";
     9     var server = "192.168.8.250";
    10     var result = myObj.register(name,passwd,server);
    11 }

    ⑤ 设置IE浏览器

    打开Internet选项->安全->Internet->自定义级别

    在弹出框中选择“ActiveX 控件和插件”选项,将和ActiveX相关的选项全部启用。

    运气好的话,你就可以成功的调用OCX了。

  • 相关阅读:
    day 66
    day 66 作业
    day 65 作业
    day 55 Ajax
    day 56 forms组件
    day 59
    day 58 cookie与session 中间件
    day 54
    day 53
    day 52
  • 原文地址:https://www.cnblogs.com/yoyotl/p/4848758.html
Copyright © 2011-2022 走看看