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 ...
随机推荐
- 关于一道JS面试题的思考
题目: ; i < ; i++) { setTimeout(function() { console.log(new Date, i); }, ); } console.log(new Date ...
- Cognos两种建模工具对于复杂日期维度的处理比较(上)
众所周知,在数据仓库中,日期维度是相当重要的.对数据分析的过程中可以从不同的角度去分析,比如按照下面的日期层次去分析数据. 年-季度-月-日 年-月-日 年-周-日 本示例将利用简单的商品销售分析的d ...
- (笔试题)小米Git
题目: git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需 ...
- Codeforces#86D Powerful array(分块暴力)
Description An array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary su ...
- VB 中定义FileSystemObject对象,要先添加对象
存取文件的方法有很多种,可以使用上述VB提供的函数,使用Windows API函数等等,但是最简单的方法是使用FileSystemObject对象. 1.使用FileSystemObject对象 F ...
- MySQL 忘记密码:skip-grant-tables
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...
- SCSS 实用知识汇总
1.变量声明 $nav-color: #F90; nav { //$width 变量的作用域仅限于{}内 $width: 100px; width: $width; color: $nav-color ...
- [Python]网络爬虫(七):Python中的正则表达式教程
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8929576#t4 接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一 ...
- jQuery知识集锦
CreateTime--2017年2月16日14:00:22Author:MarydonjQuery知识集锦1.empty()与remove()的区别 <select id="ty ...
- servlet 服务器HTTP请求头说明
Accept:用于告诉服务器,客户机支持的数据类型. Accept-Charset:用于告诉服务器,客户机采用的编码. Accept-Language:客户机的语言环境. Host:客户机通过该头告诉 ...