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 ...
随机推荐
- GO语言基础条件、跳转、Array和Slice
1. 判断语句if 1. 条件表达式没有括号(这点其他语言转过来的需要注意) 2. 支持一个初始化表达式(可以是并行方式,即:a, b, c := 1, 2, 3) 3. 左大括号必须和条件语句或 e ...
- https://leetcode-cn.com/
https://leetcode-cn.com/ 码,马不停蹄,码不停题 英文版:https://leetcode.com/
- MFC COM调用时出现E_OUTOFMEMORY错误
按照<com原理与应用>第五章写的基于MFC dll的COM,COM对象不是基于Automation的,自己映射了接口,也把潘爱民的源代码看了,感觉和他的代码一样呀,为什么在客户端用CoC ...
- [Javascript]Clouse Cove, 2 ,Modifying Bound Values After Closure
function buildCoveTicketMarker(transport){ var passengerNumber = 0; return function(name){ passenger ...
- shell中使用if判断时用到的一些参数
shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当path ...
- Office WORD如何关闭自动检查语法
只要把打钩的地方全部去掉即可.
- JAVA中AES对称加密和解密
AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
- Java从零开始学十四(包和访问控制)
一.java中的包 Java文件的组织形式Windows中的文件功能类似 在开发比较大的项目时,不可能只涉及到一个java文件,可能要创建几十,甚至几百个java文件,这个时候,我们就可以使用包,把相 ...
- 〖Linux〗build ssh for Arm
1. 交叉编译环境: export ARCH=arm export SUBARCH=arm export PATH=/opt/FriendlyARM/toolschain//bin:$PATH exp ...
- 改变maven父子项目视图为树状
完毕