title: Can JavaScript Check an ActiveX Control's Version Without Loading It?
body: <p>Is there a way to ask IE what version of an ActiveX control it has installed and enabled without actually loading the control in question? I'm hoping for something akin to <code>navigator.mimeTypes</code> in other browsers, where I can get metadata about the plugins without touching the plugins themselves. I have the control's <code>CLASSID</code> and its <code>servername</code>/<code>typename</code> (which I can <a href="http://msdn.microsoft.com/en-us/library/7sw4ddf8(v=vs.85).aspx" rel="nofollow noreferrer">pass to <code>new ActiveXControl()</code></a> if I want to load and instantiate, which I don't); I could almost certainly get whatever other identifying key I need.</p>
  
  <p>I know that I can <a href="https://stackoverflow.com/questions/1424081/how-do-i-programmatically-determine-if-active-x-has-been-disabled-if-an-active-x">instantiate the object and use a home-grown <code>GetVersion()</code>-type call</a> to ask it the version, but in that case I've loaded the control. This is bad because (at least in IE9 on Win7), if IE has loaded an ActiveX control and is then prompted to install a newer version from a cab file, it will tell the user to restart <em>their computer</em> before it will allow access to the control. It seems to work fine if you just restart IE, but we can't exactly tell the users to just ignore the prompt.</p>
  
  <p>At this point I'm guessing that the answer is "you can't do that; IE and ActiveX are two horsemen of the apocalypse" but I figured I'd put it out there.</p>