我的ocx文件。C:\WINDOWS\system32\AFISProj1.ocx
jsp中:<OBJECT  ID="AFIS1" WIDTH=1 HEIGHT=1 CLASSID="CLSID:862C377C-6F48-49B9-829C-D10F48555F9D">我下面那么做,但不管AFISProj1.ocx文件是否有没有,及AFISProj1.ocx是否注册成功老是报错弹出alert("something");  
try 
{     
          var       obj       =       new       ActiveXObject("AFISProj1.ocx");     
}     
catch(e)     
{     
            alert("something");     
} 请问怎么做????????????????????????
  另外每一个OCX都有一个GID唯一标识,gid是什么意识,com对象又是什么意识,还望懂的人帮我说明白点,最好举个例子,
十分感谢!!

解决方案 »

  1.   

    var      obj      =      new      ActiveXObject("AFISProj1.ocx");    
    这个是错的. 判断是否注册不是使用文件名的. 
    而是使用classid或classname 你可以去参考asp探针的写法. 
      

  2.   

    if obj==0
    {
    //空
    }
      

  3.   

    hydonlee 能不能说详细点,举个例子,
      

  4.   

    try
        { 
    var   obj 
       obj   =   new   ActiveXObject("WEB.Control")
            alert(obj.VerSion);
            if (obj.VerSion=="1.0.0.322")
            {
      var url=location.hostname+":"+location.port
      document.writeln("<OBJECT ID=\"LEDControl\" CLASSID=\"CLSID:F73DD1D8-E27A-4BFD-9662-E0A71B07E3EF\" HEIGHT=500                             WIDTH=700 align=center>");
      document.writeln("     <PARAM NAME=\"UrlServer\" VALUE=")
      document.writeln(url)
      document.writeln(">")
      document.writeln("<\/OBJECT>")
            }
            else
            {
              alert("LED控制系统版本升级,请点击升级注册")
      document.writeln("<a href=\"RegControl.exe\">点此升级注册<\/a>")
            }
        }
    catch(e)   
        { 
       alert("LED控制插件未注册,请点击下载注册")
            document.writeln("<a href=\"RegControl.exe\">点此下载注册<\/a>")
        }   我是这样写的,主要的如果自动更新要更改IE安全级别,还要数字签名
      

  5.   

    obj  =  new  ActiveXObject("WEB.Control") 
    这里好像不可以直接写ocx的文件名的,不认的,这个可以用ActvxDoc.exe查看ocx,看是什么类