J'ai une application Windows écrite en C++ et j'ai besoin de détecter si Flash est installé pour IE. Quelle est la meilleure façon de faire cela?Détecter si IE Flash Player est installé à partir d'un exécutable C++
Répondre
http://www.delphipages.com/forum/showthread.php?t=61736 Cette discussion concerne votre problème. Faites juste la même chose en C++.
Eh bien, il y a plusieurs façons de le faire. Une façon serait de vérifier l'existence du binaire:
- Utilisez SHGetSpecialFolderPath avec CSIDL_SYSTEM pour obtenir le chemin vers le répertoire system32.
- Utilisez FindFirst/FindNextFile pour voir si windows \ system32 \ macromed \ flash existe, et spécifiquement un fichier de la forme "flash ???. Ocx". Notez que NPSWF32.dll est la version du plugin Netscape (FF, Chrome) de Flash, alors assurez-vous de rechercher l'ocx.
Vous pouvez également probablement vérifier le registre pour quelque chose.
Voici comment je le vérifie.
Nous regarderons dans le registre. Si l'utilisateur effectue la désinstallation, ces valeurs sont supprimées. PlayerPath dans les deux cas contient le chemin complet de ocx/dll, par ex. pour la version ActiveX (IE) du lecteur, il ressemblerait C:\Windows\system32\Macromed\Flash\Flash32_11_3_300_257.ocx
et pour la version plug-in du lecteur, il ressemblerait C:\Windows\system32\Macromed\Flash\NPSWF32_11_3_300_257.dll
Alors ce que nous faisons est a) de vérifier la valeur de Registre et si elle existe, b) si le fichier existe. Peut-être que cela ne fonctionnerait que pour les nouveaux paquets Flash. Je ne sais pas comment ce code va gérer les anciennes installations Flash.