需要通过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页面嵌入控件:
(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="确定" οnclick="getSSRockKey()"/> </div> </body> </html>