JAVA怎么调用OCX控件

来源:互联网 发布:linux命令行安装oracle 编辑:程序博客网 时间:2024/05/20 19:33
需要通过Jacob这个开源组件与OCX控件进行通讯,Jacob下载地址:http://sourceforge.net/projects/jacob-project/files/jacob-project/引用相应的包后就能ActiveXComponent app = new ActiveXComponent("Word.Application");以这种方式访问ActiveX对

首先需要肯定的是,可以在jsp页面通过js来调用ocx

一、注册.ocx控件,在命令窗口运行:regsvr32.exe  XXX.ocx

二、取得控件的classid,开始-->运行-->输:regedit,打开注册表---->在注册表的工具栏的编辑中找到搜索按钮,输入XXX.ocx的名字XXX查找,就可以得到控件的classid

三、在jsp页面嵌入控件:

[html] view plain copy
  1. <body onunload="onunload()">  
  2.     <form id="form1" runat="server">  
  3.         <div>  
  4.             <div style="margin: 0px auto; width: 591px; height: 478px; border: solid 2px blue;">  
  5.                 <object id="AV_RealPlayX" style="width: 100%; height: 100%;" classid="CLSID:30209FBC-57EB-4F87-BF3E-740E3D8019D2" CODEBASE="<%=request.getContextPath()%>/XXX.OCX#version=65536">  
  6.                 </object>  
  7.             </div>  

(codebase可以不添加,他主要是在网页访问时如果找不到控件,然后告诉浏览器去哪里下载。)

然后你就可以根据id取到该对象,再用该对象调用其内置的方法。

出现的问题:可能页面只显示一个叉,没有黑视频窗口,或者提示不支持该属性方法之类的。

     开始自己也遇这一大堆错误,后来在ie6运行成功。所以发现是浏览器问题。

解决方法:打开网页的Internet选项,选择安全标签,将http://localhost或者http:127.0.0.1(就是你访问该jsp的地址)加入到信任站点。然后设置安全级别,点击自定义,将activex的所有禁止改成提示或者启用,试下能不能看到视频了吧,如果还不能,就将本地和Internate的安全级别也改了(我那时就改了,而我同事的不用,= =|||),到这就ok了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>测试ocx</title>    <script type="text/javascript">        function getSSRockKey() {            var objSSRock = document.getElementById("SSRockeyNet");            var rtVal = objSSRock.StartRockeyCtrl();            if (rtVal > 0) {                var errInfo = _Default.GetSSRockErrInfo(rtVal).value;                document.getElementById("hdnLastErrInfo").value = "读取失败!错误信息:" + errInfo;                return "";            }else {                var a=objSSRock.RockeyBufferInfo;var aa=objSSRock.InitRockey('PM040449');var c=objSSRock.RockeyHID;alert(c);}        }    </script></head><body>    <div id="divSSRock" >  <object id="SSRockeyNet" classid="clsid:4BE792DD-C27D-4676-89FA-D7630FF475A3" codebase="C:/Windows/SysWOW64/SSRockeyNetCtrl.ocx"           hspace="0" name="SSRockeyNet" style="width: 74px; height: 67px">  </object>        <input  type="button" value="确定"   onclick="getSSRockKey()"/></div></body></html>
0 0