Les Allergies
Alimentaires
Posez votre question Signaler

Toujours les OCX,VB,Setup! [Résolu]

armiou 1Messages postés 24 novembre 2008Date d'inscription - Dernière réponse le 3 avril 2009 à 16:48
Bonjour,
J'ai créé un setup de mon programme en VB mais quand je l'installe sur une autre machine, il affiche l'erreur :"Run time error '339' Component 'Rey_Xpbasics.ocx' or one of its dependencies not correctly registered : a file is missing or invalid"
Vous aller me dire d'installer l'ocx dans c:\windows\system32 n'est-ce pas?
Mais dans mon cas cela ne résoud pas le problème car mon disque local est E donc l'ocx se trouve dans e:\windows\system32
Que dois-je faire pour qu'il trouve l'ocx dans c:\windows\system32 d'1 autre machine?
Merci d'avance
Lire la suite 

Toujours les OCX,VB,Setup »

9 réponses
Réponse
+1
moins plus
Bonjour,
Si tu a créer ton setup avec l'empaquetage de VB l'erreur n'est pas là, à moins que tu ai modifié les répertoirs, il faut laisser les répertoir windows et system32 comme renseigné, le setup les mettra au bon endroit.
D'après le message renvoyer ton problème vient de l'enrégistrement de l'ocx dans la base de régistre. (sous vista)
Pour y remédier Voir ce lien
Suivre le mode d'emploi, sauf pour appeller cmd, il faut ouvrir en tant qu'admin,
>> Démarrer >> Taper CMD >> NE PAS VALIDER >> Dans le haut du menu cliquer droit sur l'icone >> Ouvrir en tant qu'administrateur et ensuite suivre les indications du lien.

A+
EDIT:
pour le rendre automatique (je connaissai pas) Le code donner par jean-yvon devra probablement être activer lui aussi en tant qu'administrateur.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
Il faut enregistrer l'ocx ou la dll sur le système d'accueil.
Ci joint un petit prog
qui permet de le faire

Private Declare Sub SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Private Sub Form_Load()
   SetWindowPos Me.hwnd, -1, (Screen.Width - Me.Width) / Screen.TwipsPerPixelX / 2, (Screen.Height - Me.Height) / Screen.TwipsPerPixelY / 2, Me.Width / Screen.TwipsPerPixelX, Me.Height / Screen.TwipsPerPixelY, 0
End Sub

Private Sub Label2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   AllonsY Data.Files(1), True
End Sub

Private Sub Label3_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   AllonsY Data.Files(1), False
End Sub

Private Sub picDesenr_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   AllonsY Data.Files(1), False
End Sub

Private Sub picEnr_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
   AllonsY Data.Files(1), True
End Sub

Private Sub AllonsY(sFichier As String, bEnreg As Boolean)

   Dim sChemin As String
   Dim lRet As Long
   
   sChemin = String(256, 0)
   lRet = GetShortPathName(sFichier, sChemin, 255)
   sFichier = Left(sChemin, lRet)
   
   If bEnreg Then
      Shell "regsvr32 " & sFichier, vbNormalFocus
   Else
      Shell "regsvr32 /u " & sFichier, vbNormalFocus
   End If
   
End Sub

@+
Ajouter un commentaire
Réponse
+0
moins plus
En y réfléchissant, je pense qu'il y a moyen d'y remédier sans aucune manipulation.
Avec un setup fait sur XP l'installation sur vista ne pose aucun problème, donc je pense que créer le setup en étant loggué en tant qu'admin devrait créer un setup valide.
Pour ça ne pas appeler l'assistant à partir de l'IDE mais à partir du menu Démarrer et ouvrir l'assistant en tant qu'admin. (clic droit)

A+
Ajouter un commentaire
Réponse
+0
moins plus
Merci à tous pour les réponses!
J'ai créé le setup avec innosetup
Et je ne l'installe pas sur vista au fait mais sur un autre pc xp.
Je voudrais ajouter quej'ai essayé de lancer le programme exe(compilé seulement) sur certains pc de mes amis l'erreur ne s'affiche pas et le programme fonctionne bien et sur d'autres ça ne marche pas alors je comprends pa du tout.

Et ce programme jean-yvon est à placer où? svp?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

"Et ce programme jean-Yvon est à placer où? svp?"
C'est un truc qui tourne tout seul en drag'n drop. Tu glisses la DLL à enregistrer dans la case "enregistrement" et le programme se charge de tout! Pour désinstaller c'est pareil un glisser-déplacer et c'est fait!
@+
JY
Ajouter un commentaire
Réponse
+0
moins plus
Jean Yvon, je comprends pas!!
Mais je crois que j'ai résolu le problème, j'ai inclu tous les ocx utilisés dans innosetup et j'ai choisi de les faire mettre dans system de windowsde la machine accueillante. L'erreur mentionné ci-dessus n'apparait plus mais c'est l'erreur 91 object variable or with block....qui s'affiche maintenant.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
Je ne connais pas innosetup. Je fais tous mes empaquetages avec VB. Je n'ai jamais rencontré de gros problèmes! Je ne sais pas répondre à ta question!
@+
JY
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je ne sais pas si le problème est toujours d'actualité mais le premier message d'erreur que tu as eu (problème d'enregistrement d'OCX) vient sûrement du fait que tu as omis d'inclure le fichier Rey_SubClasser.dll dans ton installation. J'utilise également l'OCX Rey_XPBasics et cet OCX dépend de Rey_SubClasser.dll d'où ton message d'erreur de dépendance lors de l'enregistrement de l'OCX.
Pour ton deuxième message d'erreur, tu as forcément un objet pas ou mal déclaré mais lequel...A toi de voir (attention avec le databasename des bases de données. S'il est erroné le recordsource ne passe pas et tu as ce message d'erreur par exemple).
En espérant que ça ais pu te servir ou que ça puisse servir à d'autres.

Fab.
armiou- 3 avril 2009 à 16:48
bonjour,

Au fait ce sujet est résolu, mais merci à Fab quand-même!

Je l'ai résolu en utilisant tout simplement l'outil d'empaquetage de VB et je l'ai ensuite importé dans innosetup en utilisant istool.
Ajouter un commentaire
Ce document intitulé « Toujours les OCX,VB,Setup! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?