zoukankan      html  css  js  c++  java
  • ActiveX控件的检测、安装与卸载

    一、ActiveX控件的检测、安装与卸载 

    (
    1) 用JavaScript检测系统中是否已经安装了某个ActiveX控件
    try {
    var ax = new ActiveXObject(“控件名称”);
    alert(“已安装”);
    catch(e) {
    alert(“未安装”);
    }
    如果组件不是自己编写的,要确定控件名称,首先要知道控件的CLSID。每个COM组件都会对应一个CLSID,可在IE管理加载项中获得其CLSID,然后在注册表的HKEY_CLASSESS_ROOT

    中查找CLSID,打开它的节点,其中有一项是ProgID,它的值就是创建该控件时所需的名称。

    Demo:
    <html>
    <head>
    <title>安装ActiveX</title>
    </head>
    <body>
    <h1 id="Tip">正在加载控件……</h1>
    <object
    classid
    ="CLSID:B2EC6023-6C00-49F9-A8BE-3AAC4E326BA4"
    codebase
    ="http://www.demo.com/bin/activex.cab#version=0,0,0,1" style="display:none"></object>
    </body>
    <script type="text/javascript">
    window.onload 
    = function() {
    try {
    var ax = new ActiveXObject("name");
    $(
    "Tip").innerHTML = '安装完成';
    catch (e) {
    $(
    "Tip").innerHTML = '等待您的操作… '
    + '<p>现在您的浏览器或安全防护软件可能阻止了控件的安装。<br>'
    + '请单击信息栏,然后选择"安装 ActiveX 控件"<br>'
    + '在”IE安全警告”对话框中,单击"安装"</p>';
    }
    };
    </script>
    </html>

    (
    2) 如何卸载ActiveX控件
    IE菜单栏-工具-管理加载项-工具栏和扩展-所有加载项,
    双击某控件,复制文件路径,运行
    "regsvr32 /u 文件路径"命令,卸载成功。

     


    二、JavaScript检查ActiveX控件是否已经安装过,这一篇的检测控件是否安装过省去了设置ie安全级别的麻烦!
    function detectPlugin(CLSID,functionName)
    {
        
    var pluginDiv = document.createElement("<div id=\"pluginDiv\" style=\"display:none\"></div>")
        document.body.insertBefore(pluginDiv);
        pluginDiv.innerHTML 
    = '<object id="objectForDetectPlugin" classid="CLSID:'+ CLSID +'"></object>';
        
    try
        {
            
    if(eval("objectForDetectPlugin." + functionName) == undefined)
            {
                pluginDiv.removeNode(
    true);//删除pluginDiv及其所有的子元素
                return false;
            }
            
    else
            {
                pluginDiv.removeNode(
    true);//删除pluginDiv及其所有的子元素
                return true;
            }
        }
        
    catch(e)
        {
            
    return false;
        }
    }
    这是通用的方法,只需要把唯一的Activex的clsid和任意一个属性或方法名传进来就可以判断了。(找了两个小时才找到 
    -_-!
    下附测试代码:
     
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>~~~~</title>
    </head>
    <script language="javascript">
    function openreg(){ 
        
    if(detectPlugin('A0F5EA74-8C04-4AF7-B7EA-DCB43F53ED45','CurVersion')==false)
        {
            alert(
    "控件未安装");
        }
    }
    function detectPlugin(CLSID,functionName) 

        
    var pluginDiv = document.createElement("<div id=\"pluginDiv\" style=\"display:none\"></div>"
        document.body.insertBefore(pluginDiv); 
        pluginDiv.innerHTML 
    = '<object id="objectForDetectPlugin" classid="CLSID:'+ CLSID +'"></object>'
        
    try 
        { 
            
    if(eval("objectForDetectPlugin." + functionName) == undefined) 
            { 
                pluginDiv.removeNode(
    true);//删除pluginDiv及其所有的子元素 
                return false
            } 
            
    else
            {
                pluginDiv.removeNode(
    true);//删除pluginDiv及其所有的子元素 
                return true
            }
        } 
        
    catch(e) 
        {
            
    return false
        } 

    </script>
    <body>
    <p>通过浏览器打开Topteam客户端----测试</p>
    <p> 
    <input type="button" value="进入系统" onclick="openreg();"/
    </p>
    </body>
    </html>


    三、JavaScript检查ActiveX控件是否已经安装过

     

    有下列两种方式去检测是否安装,如果在本地iis运行,检测速度很快,放到远程后速度很慢,至少要两分钟

    1.采用object元素的object属性是否为空可以判断此控件是否存在,如 
    <object classid="clsid:00460182-9E5E-11d5-B7C8-B8269041DD57" id="activeObj"  width="100%" height="100%"> 
         
    <param name="BorderStyle" value="1">

    </object> 
    <script> 
    if(document.all.activeObj.object == null) { 

    </script>

    2.通过检测对象的属性是否未定义检测

      
    var mObject=false;
      
    try{
        
    var mFieldList = mainForm.activeObj.FieldsList;//
      }catch(e){mObject=true;}

    if (!mObject){...}

     
  • 相关阅读:
    超详细的 Vagrant 上手指南
    简单聊聊 Ironic
    什么是裸金属
    使用 minikube 快速上手 Kubernetes | v1.7.3
    来看看你对Python变量理解到位了没有
    python HelloWorld 的 4 种姿势,你知道几种
    Windows 系统安装 Python 3.8 详解
    myeclipse2017下载安装与破解详细教程
    eclipse中tomcat的add and Remove找不到项目
    cmd中查看MySQL数据库表数据及结构
  • 原文地址:https://www.cnblogs.com/furenjun/p/2011016.html
Copyright © 2011-2022 走看看