功能为打开网页禁止ESC退出键的使用,所以开发了一个ActiveX.ocx插件,网页调用。原来想采用网页自动下载CAB文件方式,但是这种方式的缺点是未认证的ActiveX插件证书是禁止的,必须手动在IE里边设置允许下载未认证证书才可以,所以就换了另一种方法,把ActiveX.ocx插件单独做成steup.exe可安装注册的安装包文件,用户点击下载自己安装ActiveX.ocx插件,然后网页需要判断是否已经安装了ActiveX.ocx插件,安装则可以继续,没安装,提示下载安装后继续。目前ActiveX.ocx插件打包注册安装都没问题了,网页调用ActiveX.ocx插件按ESC键也不管用了,唯一的问题时不管我安装了ActiveX.ocx插件和未安装ActiveX.ocx插件,网页都无法获取到插件对象,导致我无法判断到底是装了还是没装,希望高手指点一下,绝对给高分。网页代码如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
function IsActiveX()
{
    
    //方法一判断,直接报异常错误NewObj = new ActiveXObject,所以获取不到对象alert(NewObj)弹出=undefined
var NewObj;  
    try 
{  
        NewObj = new ActiveXObject("ALTTABACTIVEX.AltTabActiveXCtrl.1");  
alert(NewObj);
        var xx=typeof(NewObj);  
        alert(xx);  
        if (typeof(NewObj) != 'undefined') {  
            NewObj = null;  
            alert("存在111");  
           //return true;
            }  
    } catch (e) { 
alert(NewObj);
        NewObj = null;  
        alert("不存在222");  
        // return false;
    } //方法二也无法获取到SinloActiveX对象,alert(u.object)为NULL
if(window.ActiveXObject)
{
try 
{
var u = document.getElementById("SinloActiveX"); 
alert(u.object);

catch(e) 
{
alert(e.description);
}
}
}
</SCRIPT>
<OBJECT ID="SinloActiveX" WIDTH=0 HEIGHT=0 
CLASSID="CLSID:28466CD5-2136-4BBF-8CC9-879C5EC3E8EC">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="2646">
    <PARAM NAME="_ExtentY" VALUE="1323">
    <PARAM NAME="_StockProps" VALUE="0">
</OBJECT><p></p> <p></p><br><INPUT TYPE="submit" value=" 提交下一步 " onclick="IsActiveX();return false;">
</BODY>
</HTML>个人思路:以上的CLSID和名称都是正确的,安装ActiveX插件后,ESC退出键确实不管用了,但是判断ActiveX插件是否存在时还是提示不存在,难道手动安装的ActiveX插件不能这样判断,还有其它方法?ActiveX插件

解决方案 »

  1.   


    你都说网页能调用了,但怎么又说无法获取插件的对象了,那你原来的网页是怎么调用的,调用组件的方式就是你上面写的了,只要ProgID,CLSID没错就可以了
      

  2.   

    是的,只要安装了ActiveX.ocx插件,打开网页,ESC退出键就不管用了,只要卸载了ActiveX.ocx插件,打开网页,ESC就正常使用,但是通过那几个方法想判断ActiveX.ocx插件是否安装了,确不行。
      

  3.   

    其实这个插件是网页里通过html代码调用的还是说BHO之类的方式调用的。你可以看看注册表中是否有对应的progid了
      

  4.   

    注册表有这个progid了,代码调用就上边的网页代码,没有其它了。