如何以编程方式确定是不是已安装 ActiveX 控件,以及它或整个 ActiveX 是不是已被禁用?

Posted

技术标签:

【中文标题】如何以编程方式确定是不是已安装 ActiveX 控件,以及它或整个 ActiveX 是不是已被禁用?【英文标题】:How do I programmatically determine if an ActiveX control has been installed, and whether it or ActiveX as a whole has been disabled?如何以编程方式确定是否已安装 ActiveX 控件,以及它或整个 ActiveX 是否已被禁用? 【发布时间】:2009-09-14 21:44:59 【问题描述】:

我在服务器端使用 ASP.NET,在客户端使用 javascript

我正在尝试开发一些页面来帮助用户排除故障,我想知道是否有办法以编程方式确定以下内容:

    如果 ActiveX 在 Internet Explorer 中被禁用 如果已安装 ActiveX 控件 如果 ActiveX 控件已安装但已禁用

对于情况 2 和 3,我知道为了检测是否安装了 ActiveX 控件,您将在 JavaScript 中使用以下检查:

function isActiveXControlInstalled(progId, expectedVersion)

    var version;
    try
    
        var instance = new ActiveXObject(progId);
        version = instance.VersionString;
        instance = null;
    
    catch (e)
    
       version = null; // Set version to null, since that is an invalid control version, and the check below will always fail.
    

    return (version >= expectedVersion);

但是,如果控件已安装但禁用,此函数也会返回 false。这两种情况能区分吗?

【问题讨论】:

对不起,我不明白,但是您的尊贵是什么意思? isActiveXControlInstalled 函数无法区分情况 2 和 3。如果未安装活动控件,如果已安装但禁用,它将返回 false。我希望能够区分这些情况,以便向用户显示安装页面或向他们展示如何重新启用控件的页面。 【参考方案1】:

没有。我认为如果它已安装但被禁用,您将无法从您的应用程序中分辨出来。您可以考虑将故障排除页面中的措辞更改为“未安装或已禁用”。

【讨论】:

以上是关于如何以编程方式确定是不是已安装 ActiveX 控件,以及它或整个 ActiveX 是不是已被禁用?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式确定 Windows 中是不是安装了 Mono 64 位以及安装在何处?

以编程方式确定 Cisco *** 客户端是不是已连接

如何使用 MFC 以编程方式更改 ActiveX 控件的属性?

如何以编程方式检查 Android 中是不是安装了应用程序?

如何确定已安装的 webpack 版本

在力控组态软件如何将GIS融入其中