Есть ли способ спросить IE, какую версию элемента управления ActiveX он установил и активировал без фактической загрузки соответствующего элемента управления? Я надеюсь на что-то похожее на navigator.mimeTypes
в других браузерах, где я могу получить метаданные о плагинах, не касаясь самих плагинов. У меня есть элемент управления CLASSID
и его servername
/ typename
(который я могу передать new ActiveXControl()
, если я хочу загрузить и создать экземпляр, чего у меня нет); Я почти наверняка смогу получить любой другой идентификационный ключ, который мне нужен.
Я знаю, что могу создать экземпляр объекта и использовать доморощенный вызов GetVersion()
-типа , чтобы узнать его версию, но в этом случае я загрузил элемент управления. Это плохо, потому что (по крайней мере, в IE9 на Win7), если IE загрузил элемент управления ActiveX и затем получил запрос на установку более новой версии из файла cab, он скажет пользователю перезагрузить свой компьютер перед тем, как это позволит получить доступ к контролю. Кажется, это работает нормально, если вы просто перезапустите IE, но мы не можем точно сказать пользователям, чтобы они просто игнорировали приглашение.
На данный момент я предполагаю, что ответ таков: «вы не можете этого сделать; IE и ActiveX - два всадника апокалипсиса», но я подумал, что выложу это там.