如何以编程方式确定是不是已安装 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 位以及安装在何处?
如何使用 MFC 以编程方式更改 ActiveX 控件的属性?