是否可以确定客户端是否安装了某个ActiveX控件?

时间:2009-03-13 14:28:33

标签: asp.net activex

我有一个ASP.Net网站,将图像文件推送到客户端。由于我们不同的用户群的古怪需求,一些客户端工作站有一个ActiveX组件,他们需要在这个网站中使用它来操作这个图像,但由于成本,并非所有用户都有这种控制。我希望能够确定客户端是否安装了此ActiveX控件,然后根据此测试的结果编写标记脚本。

我一直在彻底探索Request对象,但没有发现任何我需要的东西。 Request.Browser.ActiveXControls很高兴知道,但我需要进一步深入研究。我应该关注另一个命名空间吗?这甚至可能吗?

提前致谢。

1 个答案:

答案 0 :(得分:5)

您无法从服务器端查询ActiveX可用性。甚至Browser.ActiveXControls标志也是来自UA字符串的猜测,很容易出错。

您所能做的就是尝试从JavaScript实例化对象,并采取依赖于此的客户端操作:

var obj;
try {
    obj= new ActiveXObject('Control.ProgID');
} catch (e) {
    obj= null;
}
if (obj) {
    doActiveXEnhancedVersionOfPageThings();
}