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的文件名,得到注册表项。
右键导出注册表项到文件,得到如下的信息:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AppID\{C8E251BB---9BF4-53593AE5B108}]
@="my Control"
③ 在页面中初始化该控件
<object id="myOcx" name="test" BORDER="0" WIDTH="300" HEIGHT="300"
style="display: none"
classid="clsid:C8E251BB-1326-4870-9BF4-53593AE5B108"
onerror="onObjectError()">
</object>
onerror方法很重要,如果未能正确的引用刚刚注册的控件,会提示出错。
SCRIPT438: 对象不支持“XX”属性或方法。
这个错误查询一抓一大把,但是有效的支持却少之又少。
本人此次遇到以下几个情况:
1.页面引用错误的classid。
2.OCX未实现安全接口。
3.OCX未标记这段代码能被js调用。
④ 在页面中调用该控件
function() {
if (!window.ActiveXObject) {
alert("对不起,证书登陆请使用IE浏览器!");
return;
}
var myObj = document.getElementById("myOcx");
var name = "201";
var passwd = "201";
var server = "192.168.8.250";
var result = myObj.register(name,passwd,server);
}
⑤ 设置IE浏览器
打开Internet选项->安全->Internet->自定义级别
在弹出框中选择“ActiveX 控件和插件”选项,将和ActiveX相关的选项全部启用。
运气好的话,你就可以成功的调用OCX了。
Javascript和OCX的结合历程的更多相关文章
- JAVASCRIPT 调用 OCX 的那些坑
这个东西我之前已经想写了,但是在我写完"制作OCX","MFC应用OCX" 之后,html 调用OCX 就一直不成功,搞了好久,都快要放弃了.昨天领导需要我这边 ...
- javascript调用ActiveX接口失败的解决方案及使用心得
前段时间公司做了个比较大的项目,需要用到ocx控件,我厂大部分项目都采用C#.net,而winform程序条用ocx控件接口是相对简单的,但是javascript调用ocx接口,却和winform的用 ...
- 关于第三方dll,ocx开发的思考
A问题: 最近有个工作,要集成一套老的指纹考勤机器到现在考勤系统(web系统)中,问题出现时老的机器只有ocx可用,没有可用的dll:原本以为简单的第三方调用就ok了,可是ocx不能被承载,在实现上费 ...
- 前端 JavaScript 基础
内容目录: 一.JavaScript介绍 二.基础语法 2.1 变量 2.2 数据类型 2.3 流程控制 2.5 函数的全局变量和局部变量 2.6 作用域 2.7 词法分析 ...
- 【JS】308- 深入理解ESLint
点击上方"前端自习课"关注,学习起来~ 本文来自于"自然醒"投稿至[前端早读课]. 小沈是一个刚刚开始工作的前端实习生,第一次进行团队开发,难免有些紧张.在导师 ...
- Delphi开发嵌入IE的OCX,调用页面上JavaScript的方法
利用Delphi的ActiveForm,可以很方便地开发出可以嵌入IE的ActiveX组件,无需知道太多幕后的COM知识.如何使得OCX可以很方便地调用Web上的JavaScript函数呢,研究了一个 ...
- JavaScript 模块化历程
这是一篇关于js模块化历程的长长的流水账,记录js模块化思想的诞生与变迁,展望ES6模块化标准的未来.经历过这段历史的人或许会感到沧桑,没经历过的人也应该知道这段历史. 无模块时代 在ajax还未提出 ...
- JavaScript学习历程和心得体验
一.前言 在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证.浮动广告等,所以那时候JavaScript并没有受到重视.自从AJAX开始流行后,人们发现利用JavaScript可 ...
- vc++调用msscript.ocx解析实现C++与JavaScript脚本交互
ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...
随机推荐
- Android之属性动画(二)
上一篇文章(链接:http://www.cnblogs.com/jerehedu/p/4458928.html ),我们对属性动画有了简单的认识,并实际动手使用ObjectAnimator.Anim ...
- 关于PHP写的投票网站之刷票终结版
告诉大家一个坏消息,还是有刷票的行为,有图有真相: 倒数第三项是时间轴,倒数第二项是IP,倒数第一项是邮箱,你们要刷票,拦都拦不住呀呀呀呀呀呀!!!!! 看看这些时间的间隔,看看这些IP的地址,哎,再 ...
- 创建一个pre标签展开折叠的UI组件(原创)
这些天练习UI组件的编写,顺便模仿一个h5版本的pre标签收缩展开的效果组件: 兼容ie8.9,谷歌,火狐: 图片效果如下: demo.html代码: <!DOCTYPE html> &l ...
- curl库的使用,32-64
http 使用curl发起https请求 http://www.cnblogs.com/ainiaa/archive/2011/11/08/2241385.html Curl配置及编译: CFLAGS ...
- 在MyEclipse中设置jsp页面为默认utf-8编码(转)
http://www.cnblogs.com/xdp-gacl/p/3496161.html 在MyEclispe中创建Jsp页面,Jsp页面的默认编码是“ISO-8859-1”,如下图所示: 在这种 ...
- win10系统80端口被占用怎么办?
win10系统80端口被占用怎么办? 因为win10默认开启了IIS因此占用了80端口,可以netstat –ano 查到. 运行netstat -aon | findstr :80 ,发现pid是4 ...
- Android——SD卡工具类——SDCardUtils.java
package com.xdsjs.save.utils; /** * SD卡相关的辅助类 * Created by xdsjs on 2015/10/13. */ import java.io.Fi ...
- jQuery仿天猫完美加入购物车
转载自:http://www.iteye.com/topic/1138064 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...
- mysql利用yum安装指定数据存放路径
测试环境: Centos6.5.MySQL5.6.28 yum安装具有速度快,便捷关键是不用编译,编译时间太久了! 01.下载mysql https://mirrors.tuna.tsinghua.e ...
- Windows 消息机制浅析
1. Windows 的历史 中国人喜欢以史为鉴,而事实也确实是,如果你能知道一件事情的来龙去脉,往往可以更容易地理解事物为什么会表现为当前这样的现状.所以,我的介绍性开场白通常会以一段历 ...