Tester si un activeX est installé ? [Résolu]

Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
- - Dernière réponse : cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
- 3 mai 2007 à 08:44
Bijour les codeurz,

Donc là, je sèche, voyez-vous.... Je me doute qu'apres un coup de regsvr32, un controle ActiveX se fait référencer par zindoz, et qu'a priori ca va se voir qqpart dans la registry. Mon problème c'est que je n'ai aucune idée de la forme générique qu'une telle clef doit avoir, et que je suspecte qu'en plus cela doit dépendre de la version de zindoz win9x vs. nt-2k-xp.... ( le prog est prévu pour tourner sur une machine au pire win95, au mieux XP).

voili voilou...
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Bah il suffit que tu retrouve le CLSID d'une des classes contenue dans l'ActiveX (En cherchant le nom de la dll ou de l'ocx dans la base de registre sur un pc ou l'ActiveX est installé par exemple), puis à tester l'existance de la clé :

 HKEY_CLASSES_ROOT\CLSID\{9A68CFA5-D557-4BB8-A957-D32AFBD8AE72}\

sur le PC cible (Avec le bon clsid bien sûr).

En vérification supplémentaire, tu peux regarder la valeur par défaut de la sous clé InprocServer32 de cette clé pour récupérer le chemin d'accès à l'ocx/dll et tester l'existence du fichier.

Pour tes soucis de compatibilité, HKEY_CLASSES_ROOT est une clé plutôt très vielle, voir obsolète. Sous XP, cette clé est en effet équivalente à HKEY_LOCAL_MACHINE\SOFTWARE\Classes, qui est sensé la remplacer à terme. (regedt32 peut laisser croire qu'il y a redondance d'information entre ce qu'il y a sous ces deux clés mais il n'en ai rien. C'est juste un alias). Mais je peux pas te dire si HKEY_CLASSES_ROOT existait sous 95...

Tu as essayé de placer un petit try ... except bien senti ? Ca peut simplifier pas mal le problème.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 144 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
0
Merci
Salut,

Quel intérêt de tester si un ActiveX est installé ? Dans le cas ou on apporte un ActiveX de version inférieur à celui présent, regsvr32 ne prendrat pas en compte le nouvel ActiveX (A condition que les versions soient correctement incrémentées).

Si c'est l'emploi de regsvr32 sui te gène, tu peux appeler directement la routine dllRegisterServer présente dans les ActiveX.

Si tu veux un horrible tuto qui te donnnera quelques noms de clés en relation avec les ActiveX, regarde ce tuto :

http://www.vbfrance.com/tutoriaux/INSTALLATION-SANS-INSTALLATION-AVEC-MANIFEST_240.aspx

Attention : l'auteur de celui-ci n'a pas toute sa tête.
Commenter la réponse de cs_rt15
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
0
Merci
Simple, mon appli débarque avec son installer, installe un activex sur la machine cible. Je cherche un moyen de vérifier, au démarrage de l'appli, si l'activex est présent car cela conditionne une bonne partie de chose. En outre, la nature de l'appli fait que les message d'erreurs sont proscrits, y a juste une log. Il importe donc que la partie de l'appli qui utilise cet activeX ne soit pas lancée du tout ( le onCreate de la form est zappé)
Commenter la réponse de DeltaFX