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

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

1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式。

就是说在网页内部给控件提供一个名字 ,在网页中通过这个名字访问控件。

2.CLASSID:是该控件唯一的UUID,告诉IE装入哪个对象。如果使用已经开发好的控件,它的CLASSID可以通过调用Win95或NT下的应用Regedit来查找。从开始菜单中运行该程序,展开HKEY_CLASSES_ROOT项,可以看到按字母顺序排列的注册表,找到需要使用的控件名,例如WClnt,展开时可看到一个CLSID文件夹,里面就是该控件的CLASSID。

如果是自己用VC开发控件,该UUID可以在ActiveX控件项目中的ODL(对象描述库)文件中找到;通过查看控件的类信息注释来定位特定控件的UUID,例如,要找到CMyControl控件的UUID,则需要找到以下代码:

Class information for CMyControl

[uuid (051C4748-1262-11D2-87C1-00A024D948FB),

licensed,

helpstring("CmyControl Control"), control ]

uuid后面括号中的内容就是该控件的UUID。

这个CLASSID相当于身份证,通过这个数字找到在电脑上已经注册的控件。

3.CODEBASE(代码库):如果在用户机器上没有控件的当前版本,该参数告诉用户浏览器在哪里可找到要下载的控件和最新版本号.当控件作了修改后,可以更改版本号强制用户重新下载。

4.PARAM:该标记用于设置控件的初始属性值,它有两个特性:Name和Value,即属性名称和属性值。

此外还有一些标记,如:Width表示该控件所占的宽度,Height表示高度等,总体来说,这样一个插入控件的HTML代码和插入Java Applet的HTML代码非常相似。

下面是一个嵌有ActiveX控件的HTML代码示例:

<OBJECT ID="CMyControl" CLASSID="clsid:051C4748-1262-11D2-87C1-00A024D948FB" CODEBASE="http://www.mysite.com.cn/ocxdir/mycontrol.ocx#version=1,0,0,1" WIDTH=400 HEIGHT=200 ALIGN=center HSPACE=0 VSPACE=0 > </OBJECT>

CODEBASE的设置中,若CAB文件与该WEB文件保存在同一目录下,只需写其文件名即可,即CODEBASE="mycontrol.ocx#version=1,0,0,1";#号代表此控件的版本,如果版本不同,客户端的浏览器自然会下载更新。

如果希望控件还能在Netscape中运行,除了Netscape需加装插件外,HTML也要加一些附加标记,下面的例子中EMBED段就是为 Netscape加上的。如果使用MFC开发OCX控件,则少数用户第一次访问时除了下载OCX文件外,还要下载相应的MFC DLL,下载量变大,这时可将相关文件在服务器端打包成可以在客户端自解压安装的CAB文件。经过修改后的HTML代码段如下:

<ALIGN="CENTER" CLASSID="clsid:

7BCA18C6-2178-11D2-87C1-00A024D948FB"

WIDTH="1200" HEIGHT="900" ID="marquee"

CODEBASE="http://218.168.188.188/scadaweb/

WClnt.cab#version=1,0,0,1">

<EMBED ALIGN="CENTER"CLASSID="clsid:7BCA18C6- 2178-11D2-87C1-00A024D948FB"

WIDTH="1200" HEIGHT="900" ID="marqueequot;"

CODEBASE="http://218.168.188.188/scadaweb/

WClnt.OCX#version=1,0,0,1"

TYPE="application/oleobject" >

一个网友的总结

在JSP(Java Server Pages)中调用OCX可以按如下操作:

一 先用regsvr32 D:\TestOcx.ocx 命令注册,这是我OCX存放的路径,当然也可以直接进入到ocx存放目录下去注册(个人习惯而已)

如果注册成功,会提示注册成功。

需要卸载用regsvr32 D:\TestOcx.ocx /u 命令

二 到注册表查找OCX的CLSID

regedit 打开注册表,在编辑菜单里点查找输入OCX的名字,就可以找到它的CLSID和版本号

三 写下如下JSP代码

<html>

<head>

<script type="text/javascript" language="javascript">

function show(){

TestOcx_new.TestOcx("1");

}

</script>

</head>

<object id="TestOcx_new" width="32" height="32"

classid="clsid:8009643F-44E9-4698-A242-3548E86FB4DF"

CODEBASE="<%=request.getContextPath()%>\TestOcx.ocx#version=1.0">

</object>

<body onload="show()">

</body>

</html>

其中:ID可以随便起名,CLASSID就是注册表里找到的CLSID,CODEBASE就是OCX的路径,版本号也是注册表里找到的。

(曾调试写与不写没有什么区别,不知道问题所在,在我的程序里没有写)

然后就是写方法去调用OCX里的事件了,这句TestOcx_new.TestOcx("1");

TestOcx_new就是你起的ID名,TestOcx("1")就是OCX里的方法名和你传进去的参数了。

以下是我实际操作中关键部分的截图:

时间: 2024-10-08 23:16:36

网页里面调用OCX控件的一般方法的相关文章

PHP调用OCX控件的具体方法

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

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

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

web页面动态加载UserControl,并调用用户控件中的方法来初始化控件

1,HTML页 头部注册: <%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/CeShiBu.ascx" TagPrefix="UserControl" TagName="CeShiBu"%> <%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/KaiFaBu.ascx" TagPrefix=&quo

js中调用ocx控件

项目中经常遇到js中要调用c++控件情况,通过控件来实现相关功能操作.如视频控件等 具体js中引用 object的classid 代码参考如下: <body id="body" > <div id="div" style="width:100%;height:100%;"> <object classid="clsid:61978326-6772-4595-9EC3-D23C5CD5E61F" w

在Web上调用Ocx控件

原文:http://blog.csdn.net/goodadult2012/article/details/6343369 在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中:将该控件下载给用户:在用户机器上安装该控件.如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单:如果同时兼顾IE和Netscape用户,则要做更多工作.大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标

查看ocx控件CLSID的方法

CLSID就是classID类的标识码,相当于你的控件的身份证号码,获取这个ID的方法很多,在控件的源码可以看到这个ID,这里介绍如何从注册列表里面找到这个ID. 打开注册表↑ 编辑>查看,输入你要查找的控件ID的名字↑ 找到控件↑ 这就是你的控件的CLSID↑

JS调用Delphi编写的OCX控件

原文:http://www.mamicode.com/info-detail-471283.html 一.使用Delphi XE2编写OCX控件 生成OCX工程: 1.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Library 2.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Control,这里要封Delphi的TStringGrid

Html页中使用OCX控件

原文:http://blog.csdn.net/mouse8166/article/details/5515657 最近准备开发一个b/s架构的应用程序需要用到activeX控件,web服务器尚未进入编码阶段,偶手上已有原用于vc客户端程序中的ocx控件,想测试一下此控件在普通网页上执行功能有无偏差,于是搞了个简单的html静态页面调用来测试OCX控件. 一 注册OCX控件 新建reg.txt文件 编辑RegSvr32  TestOCX.ocx  //TestOCX是控件名 保存 改名reg.b

C#中引用第三方ocx控件引发的问题以及解决办法

调用OCX控件的步骤:1.在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册)2.在.net的工具箱中添加该控件,拖到form中去就可以了. 不用工具箱的话,自己手工添加,需要注意一个问题,就是要用Aximp.exe来包装一下ocx控件的类,然后再程序中引用生成的dll就可以了.aximp [options]{file.dll | file.ocx}The following command generates MediaPlayer.dll and A