Определить, установлен ли IE flash player из исполняемого файла C ++ - PullRequest
1 голос
/ 04 декабря 2010

У меня есть приложение для Windows, написанное на C ++, и мне нужно определить, установлен ли Flash для IE. Какой лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 04 декабря 2010

Ну, есть несколько способов сделать это. Один из способов - проверить наличие двоичного файла:

  1. Используйте SHGetSpecialFolderPath с CSIDL_SYSTEM, чтобы получить путь к каталогу system32.
  2. Используйте FindFirst / FindNextFile , чтобы увидеть, существует ли windows \ system32 \ macromed \ flash, и, в частности, файл вида "flash ???. Ocx". Обратите внимание, что NPSWF32.dll является версией плагина Netscape (FF, Chrome) Flash, поэтому убедитесь, что вы ищете ocx.

Вы также можете проверить реестр на что-то.

0 голосов
/ 14 июня 2012

Вот как я это проверяю.

Мы будем искать в реестре.Если пользователь выполняет деинсталляцию, то эти значения удаляются.

#define FLASH_KEYDIR _T("Software\\Macromedia\\FlashPlayerActiveX")
#define FLASH_KEY _T("PlayerPath")
#define FLASHPLUGIN_KEYDIR _T("Software\\Macromedia\\FlashPlayerPlugin")
#define FLASHPLUGIN_KEY _T("PlayerPath")

PlayerPath в обоих случаях содержит полный путь к ocx / dll, например, для версии проигрывателя ActiveX (IE) это будет выглядеть как C:\Windows\system32\Macromed\Flash\Flash32_11_3_300_257.ocx и дляплагин версии проигрывателя это выглядело бы как C:\Windows\system32\Macromed\Flash\NPSWF32_11_3_300_257.dll

Итак, что мы делаем: а) проверяем значение реестра и, если он существует, б) проверяем, существует ли файл.Возможно, это будет работать только для новых Flash-пакетов.Я не уверен, как этот код будет обрабатывать старые установки Flash.

0 голосов
/ 04 декабря 2010

http://www.delphipages.com/forum/showthread.php?t=61736 Эта тема относится к вашей проблеме.Просто сделайте то же самое в C ++.

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