Tester si un activeX est installé ?

Résolu
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 - 1 mai 2007 à 15:50
cs_rt15 Messages postés 3874 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...

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
3 mai 2007 à 08:44
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.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 mai 2007 à 12:09
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.
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
2 mai 2007 à 18:31
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é)
0
Rejoignez-nous