Evitez les erreurs à l'installation de nouveau ActiveX

Comment utiliser mes Active X
Petit point sur l'enregistrement des Active-X
Comprendre les messages d'erreurs

 

Comment utiliser mes Active X

Contenu des fichiers ZIP
tous les active-X que je propose sont inclus dans un fichier ZIP contenant :
un répertoire Sources et un répertoire Release
Aucun message d'erreur ne devrait apparaître si vous suivez les recommandations de cette page

Le répertoire Sources contient :

un projet contenant l'active X seul
un projet qui utilise ce projet (et non l'active X cf. parenthèse technique)
ces deux projets sont associés dans un groupe de projet nommé __TEST.VBG

Pour éviter d'avoir un message d'erreur il faut toujours lancer __TEST.VBG
L'erreur qui se produit lorsqu'on lance _Demo.vbp est normale, ce projet ne peut pas fonctionner seul (cf. parenthèse technique)

Le répertoire Release contient :

L'activeX compilé
un projet qui utilise l'active X compilé
Un exécutable de ce projet
Il est possible d'ouvrir le projet ou de lancer l'exe sans obtenir d'erreur
Des problèmes apparaîtrons si on les déplace (cf. parenthèse technique)

Petit point sur l'enregistrement des Active-X

Les fichiers OCX doivent être enregistrés dans la base de registre pour que les programme qui les utilisent fonctionne,
y compris les projets VB exécutés depuis l'éditeur (sauf dans le cas de groupe de projet particulier)
Ceci peut être fait manuellement ou automatiquement :

Inscription manuel d'un OCX :
Faites démarrer exécuter...
taper Regsvr32 puis le nom et le chemin complet de l'OCX (ou drag & drop du fichier OCX dans la fenêtre exécuter)
on obtient ce genre de message :

(Pour facilité cette opération je conseille vivement d'installer ce REG qui permet d'obtenir ENREGISTRE dans le menu contextuel de l'explorateur)

Inscription Automatique d'un OCX :
L'inscription ce fait automatiqement (si elle n'a pas déjà eu lieu) lorsque
VB compile et créer le fichier OCX
VB ouvre un projet utilisant un OCX qui se trouve dans le même répertoire (ouvrez _Demo.vbp du répertoire Release pour le vérifier)
On exécute un programme utilisant un OCX qui se trouve dans le même répertoire (Lancez l'exe du répertoire Release pour le vérifier)
On exécute un programme utilisant un OCX qui se trouve dans le répertoire system de windows (windows\system ou \system32)

A la suite d'un enregistrement il n'est plus possible de déplacer l'OCX
les programmes ne vont plus marcher car la référence contenu dans la base de registre n'est plus valide

( parenthèse technique ...

si on édite le fichier _Demo.vbp du répertoire Sources la référence à l'active X ce fait par le biais du projet le contenant, on trouve donc une ligne du style :
Object=*\A_anybutton.vbp
Le groupe de projet __TEST.VBG peut donc fonctionner sans que l'OCX ne soit enregistré dans la base de registre


Par contre le fichier _Demo.vbp du répertoire Release contient une référence directe à l'active X la ligne est alors de ce style :
Object={4A36BBCD-6463-11D4-889B-00105AB0D2BD}#1.0#0; AnyBouton.ocx
Le projet _Demo.vbp ne peut marcher que si l'OCX est enregistré dans la base de registre
(ce qui ce fera automatiquement si ce n'est déjà fait à l'ouverture)

Autre problème :
si vous lancer l'exe du répertoire Release avant d'ouvrir le groupe de projet __TEST.VBG
L'éditeur VB trouvant une référence à l'OCX utilisé voudra changer la référence contenu dans le projet _Demo.vbp :
la ligne
Object=*\A_anybutton.vbp
sera automatiquement remplacé par
Object={4A36BBCD-6463-11D4-889B-00105AB0D2BD}#1.0#0; AnyBouton.ocx
se qui peut poser des problèmes si l'on souhaite modifier l'OCX par la suite

Comprendre et corriger les erreurs

Résolution des message d'erreur survenant à l'ouverture d'un projet

Impossible de charger .... .ocx continuer a charger le projet ?
Erreur lors du chargement consultez ...... .log pour plus de détails
Impossible de créer cette référence .....
le composant ... ou une de ces dépendances n'est pas correctement enregistré : un fichier est absent ou incorrect

Impossible de charger .... .ocx continuer a charger le projet ?


Ce message apparaît lorsqu'un OCX référence dans le projet (le .VBP) est introuvable
si une feuille utilise l'OCX en question un autre message apparaît

Erreur lors du chargement consultez ...... .log pour plus de détails

Attention : dans la feuille tout les composants introuvable seront remplacés par des PictureBox (en mémoire pour l'instant)
il ne faut surtout pas enregistrer les changements en sortant sinon les composant deviendront des PictureBox dans la feuille (le .FRM)
et elle deviendra définitivement inutilisable !

Solution :
1) Quitter l'éditeur sans rien enregistrer, enregistrer l'OCX et ré ouvrir le projet
ou
2) Ajouter la référence à l'OCX au projet dans le menu "projet" "composant", quitter l'éditeur en enregistrant uniquement le VBP et ré ouvrir le projet
(il est peut être nécessaire de compiler cet OCX s'il n'existe plus que les sources)

Impossible de créer cette référence .....

Le projet qui vient de s'ouvrir utilise un autre projet
Attention les composants manquant vont tous être remplacés par des PictureBox (ne pas enregistrer les feuilles)

Solution :
Quittez le projet sans rien enregistrer et ouvrez le groupe de projet ( un .VBG ) regroupant ce projet et l'autre
ou
Ajouter une référence compatible dans le menu "projet" "référence", quitter l'éditeur en enregistrant uniquement le VBP et ré ouvrir le projet

le composant ... ou une de ces dépendances n'est pas correctement enregistré : un fichier est absent ou incorrect

Un message qui apparaît lors du lancement d'une application qui utilise un composant ActiveX non enregistré

Encore une fois il faut enregistrer l'OCX pour que l'exe fonctionne correctement