简体   繁体   中英

How do I programmatically determine if an ActiveX control has been installed, and whether it or ActiveX as a whole has been disabled?

I'm using ASP.NET on the server side and JavaScript on the client side.

I'm trying to develop some pages that will help the user troubleshoot and I was wondering if there was a way to programmatically determine the following:

  1. if ActiveX has been disabled in Internet Explorer
  2. if an ActiveX control has been installed
  3. if an ActiveX control has been installed but disabled

For cases 2 and 3, I know that in order to detect that an ActiveX control is installed, you would use the following check in 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);
}

However, this function also returns false in the case that the control is installed but disabled. Can these two cases be distinguished?

No. I think if it is installed but disabled you won't be able to tell from your application. You might consider changing the wording in your troubleshooting page to "not installed or is disabled".

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM