JAVASCRIPT 调用 OCX 的那些坑

这个东西我之前已经想写了,但是在我写完“制作OCX”,“MFC应用OCX” 之后,html 调用OCX 就一直不成功,搞了好久,都快要放弃了。昨天领导需要我这边完成一个通过浏览器启动外部应用程序这样一个功能,限于公司懂OCX 的不多,就担起了这个任务。我知道之前尝试的时候就失败了,所以这次又进了那个坑,坑了我好久,直到快下班前才解决。

记录下解决方法。

一,首先准备一个可以正常运行的OCX。

这个东西还是用c++写比较方便,前几篇已经写过了,就不多赘述了。

二,准备一个注册和卸载OCX 的批处理文件

注册.bat

regsvr32 "%~dp0ocx15.ocx"

卸载.bat

regsvr32 "%~dp0ocx15.ocx" -u

三,准备一个调用OCX 的html 文件

<html>
<head>
<script type="text/JavaScript" language="javascript">
 function show(string1)
 {
       alert(‘123‘);
       var obj = document.getElementById("TestOcx");
       alert(obj);
       var ret = obj.StartApplication(string1);
       alert(ret);
 }
</script>
</head>
<body >
<object id="TestOcx" width="" height="" classid="clsid:440BF279-30B8-41D2-AFE7-F19141110C96">
</object>
</OBJECT>
<input type="button" id="btn1" name="btn1" value="调用ocx" title="调用ocx"
onclick="show(‘file:///D:/SE-1515/ECGWorkstation.exe.lnk‘)"></input>
</body>
</html>

这里的classid 一定要注意,当时我看到OCX工程中idl 文件下UUID 有很多个,我也不知道用哪个,就用了文件最上面的一个uuid,结果呢,就是因为uuid错误,调试了好久。这里的uuid 最好从注册表中拿到,拿的方法如下:

在运行中键入 regedit 进入注册表编辑器中,在编辑选项中点击查找,

这是就找到我们注册的OCX 了。这里的440BF279-30B8-41D2-AFE7-F19141110C96 就是我们要的clsid,

这时,html 页面还不一定能显示出这个OCX控件,需要在Internet 选项中,启用 ActiveX ,方便起见,我把该项下,所有的用ActiveX 的都启用了。

同时在高级选项下,去掉那3个检查项。

这个时候,你的html 页面应该会可以显示出OCX控件了,当然你也隐藏,调用OCX 应该就没什么问题了,html 调用OCX 这个只能试用于IE 浏览器,别问我为什么,都是微软的东西。

四,注意事项

1,  注意clsid一定要正确

2,  注意Internet选项里面的设置。

3,  注意一定要是IE 浏览器。

时间: 2024-12-16 01:52:55

JAVASCRIPT 调用 OCX 的那些坑的相关文章

javascript调用ActiveX接口失败的解决方案及使用心得

前段时间公司做了个比较大的项目,需要用到ocx控件,我厂大部分项目都采用C#.net,而winform程序条用ocx控件接口是相对简单的,但是javascript调用ocx接口,却和winform的用法有些不同,其实真捉摸下,也就能发现:差别不大. 笔者此次主要阐述在项目中用javascript调用ocx控件接口,也就是activeX控件时所遇到的问题及其解决方案.winform用法不在此篇中阐述. 调用activeX插件前,我们要做一些准备工作,我们介绍两种方案: 1.使用regsvr32 命

javascript 调用delphi封装的OCX控件&#183;

1.delphi 7 新建一个工程选择如下类型 2.设置OCX名称 3.增加函数"view"->"Type Library" 4.设置函数名称 5.设置函数返回值与入参(注意 返回参数不要使用 * 因为地址传递无法跟浏览器交互 我是这么理解的,亲测也确实没调用成功) 入参为 in 出差 是out 跟retval 6.点下上面两个小箭头的刷新按钮,就在Impl文件生成了代码,然后填充你的代码就可以了 7.编译与注册DLL regsvr32 E:OCXDelphi

jsp调用ocx

1.配置tomcat 和jdk环境,编写简单的jsp,调用ocx控件 2.ocx的控件需要注册 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>test</title> <META http-equiv="Content-Type" content="text/html; c

网页里面调用OCX控件的一般方法

在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中:将该控件下载给用户:在用户机器上安装该控件.如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单:如果同时兼顾IE和Netscape用户,则要做更多工作.大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是: 1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式. 就是说在网页内

html,JavaScript调用winfrom方法

---恢复内容开始--- 目的: 在动画上面添加点击事件,通过JavaScript调用winfrom方法 1.创建一个页面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; usin

win7 浏览器不能调用OCX控件 解决方案

1. 点击windows的“开始”菜单,选择“运行”; 2. 在输入框中输入“regsvr32 jscript.dll”(不包括双引号),点击确认; 3. 再次点击windows的“开始”菜单,选择“运行”; 4. 在输入框中输入“regsvr32 vbscript.dll”(不包括双引号),点击确认;二:如提示模块“vbscript.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005.请尝试在开始里面—>附件->右键点击一管理员身份运行

PHP调用OCX控件的具体方法

需要设置php.ini文件,找到这行com.allow_dcom=true,把com组件支持启用 使用PHP调用OCX控件,本不是个难题,但现实中采用flash回避的方法更通用.真正使用ocx的不多,而且资料也比较少,从网上看到了一个成功的例子: 其实调用 OCX或者什么什么的控件文件包含进来 include("D:\wwwroot\Authen\Authen.ocx"); 然后用COM函数调用它 其中参数是以 文件名.类名的形式调用的 这点由为重要 $word = new COM(&

用JavaScript调用WCF Service

原文:用JavaScript调用WCF Service 原创地址:http://www.cnblogs.com/jfzhu/p/4039604.html 转载请注明出处 前面介绍过<Step by Step 创建一个WCF Service>和<使用WCF的Trace与Message Log功能>,本文介绍一下如何用JavaScript来调用WCF Service. WCF Service的代码如下: IHelloService.cs using System.ServiceMode

浏览器端javascript调用手机终端本地功能实现02-功能点汇总

上篇博文已经说明,本篇直接进入主题.本篇大致说明总体功能以及代码用途,下篇将功能点逐一详细说明. 功能点包括: 拍照相关接口(camera) 功能函数名称 作用 备注 invokeCamera() 调用摄像头拍照 requestAlbum() 调用相册功能 requestAlbumMulti() 相册多选 requestAlbumMultiUpload() 相册多选完后上传 2. 录音相关接口(media) 功能函数名称 作用 备注 startRecord() 录制音频 stopRecord()