Получить версию установленного Flash ActiveX в Win32 / C ++ - PullRequest
1 голос
/ 23 мая 2010

Возможно ли это вообще?

Я встраиваю Flash в кадр IE в своем приложении и хотел бы проверить, установлена ​​ли Flash и какая у него версия.

Приложение должно работать без прав администратора.

Бонусный вопрос: Могу ли я также проверить, включены ли элементы управления ActiveX в настройках IE?

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Решение заключается в поиске CLSID Flash ("{D27CDB6E-AE6D-11cf-96B8-444553540000}") в реестре под HKEY_CLASSES_ROOT\CLSID.

Там вы можете прочитать \InprocServer32, который дает вам OCX. Тогда получите версию через GetFileVersionInfo.

Это должно работать для любого элемента управления COM.

1 голос
/ 23 мая 2010

Единственное, что приходит на ум, - это проверить версию файла соответствующего файла * .dll или * .ocx. На моей 64-битной системе файл

C:\Windows\SysWOW64\Macromed\Flash\Flash10b.ocx

Как вы, наверное, знаете, многие приложения могут перечислять все установленные элементы управления ActiveX. Таким образом, определенно возможно получить имя файла программно. И когда у вас есть, вы можете просто получить версию файла.

Надеюсь, кто-то еще может дать вам немного более просвещенный ответ в ближайшее время.

Обновление

Теперь, когда я думаю об этом, в реестре есть один ключ для каждого элемента управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...