Erreur 340 non universel ??

Erreur 340 non universel ?? - VB/VBA/VBS - Programmation

Marsh Posté le 13-12-2007 à 15:26:39    

hello !!!
 
Je viens de finir un logiciel que j'ai empaqueté avec INNOSETUP  
 
je lance le setup sur une machine l'appli s'intalle sans souci mais au moment de l'exécution  
cela ma fait une erreur 340 : L'élément du groupe de contrôles '1' n'existe pas .
 
j'installe une deuxième fois le logiciel , avec le même setup sur une autre machine et là ça marche nikel  
sans problème  
 
je ne comprends pas ...vous avez des idées de la cause de cette erreur  :??:  
 
merci d'avance  :)  

Reply

Marsh Posté le 13-12-2007 à 15:26:39   

Reply

Marsh Posté le 13-12-2007 à 15:53:40    

Il manque des ocx dans ton pack d'install on dirait.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 13-12-2007 à 15:58:37    

merci kao
j'y avais pensé  
en insérant un à un les ocx présents sur les autres machines marchants avec l'appli mais il ya toujours cette erreur ...

Reply

Marsh Posté le 14-12-2007 à 09:27:45    

Il faudrait plus d'infos sur le code et les composants utilisés.
Tu ajoutes des contrôles dynamiquement dans un formulaire ?

Reply

Marsh Posté le 14-12-2007 à 09:57:56    

hello  
je viens de me rendre compte que c'est le composant winsock qui déconne
effectivement tegu je l'ajoute dynamiquement (avec un LOAD)
mais je sais pas comment faire plusque j'avais empaqueté mswinsck.ocx dans le setup il y ait bien sur le PC
je vois pas trop si tu as des idées ... je serai ravi de les entendre
...
 

Reply

Marsh Posté le 14-12-2007 à 10:00:00    

un peu de code ::::>>>>
 
Private Sub tcpserver_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
 
 
Nbre_client_current = Nombre_client - serveur.ListClient.ListCount
   
If Nbre_client_current = 0 Then
     
    For i = 0 To serveur.ListClient.ListCount
        If serveur.ListClient.ListCount = 0 Then Exit For
        tabligneip = Split(serveur.ListClient.List(i), "  " )
        If i = serveur.ListClient.ListCount Then Exit For
        If tabligneip(0) = TCPserver(0).RemoteHostIP Then GoTo here
         
    Next
    Exit Sub
     
here:
 
End If
 
If TCPserver(0).State <> sckClosed Then 'Si la connection n'est pas fermée,
 
    If Index = 0 Then
        intMax = intMax + 1
        Load TCPserver(intMax)
        TCPserver(intMax).LocalPort = 0
        c = TCPserver(0).RemoteHostIP
        TCPserver(intMax).accept requestID 'On accepte la connection qui arrive
        TCPserver(intMax).SendData "Debut"
        c = TCPserver(0).RemoteHost
    End If
     
End If
     
End Sub

Reply

Marsh Posté le 14-12-2007 à 10:10:45    

Peut-être l'installation du composant ne s'est pas déroulée complètement.
Essaie de lancer la commande suivante (démarrer/exécuter) :  
regsvr32 "c:\windows\system32\mswinsck.ocx"
Obtiens-tu un message qui te dit que c'est ok ?
 
 

Reply

Marsh Posté le 14-12-2007 à 10:15:41    

j'ai mis ta commande  
 
ca a marqué ' réussi '
 
après que dois je faire et à quoi sert cette commande  
 
merci  
 

Reply

Marsh Posté le 14-12-2007 à 10:16:35    

Pour les ocx, dans innosetup, il faut utiliser un flag du genre "register_server" pour qu'ils soient installé correctement.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 14-12-2007 à 10:19:21    

ok merci kao
 je vais essayé ça...

Reply

Marsh Posté le 14-12-2007 à 10:19:21   

Reply

Marsh Posté le 14-12-2007 à 10:44:43    

hello  
 
j'ai mis les lignes suivantes dans mon script .iss
 
pour les composants activex  
 
Source: blabla.ocx; DestDir:{sys}; Flags: promptifolder regserver sharedfile
 
pour les dll  
 
Source: bleble.dll; DestDir:{sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver
 
j'ai désintallé mon appli  je l'ai réinstaller et ça me fait l'erreur suivante  
 
impossible d'enregistrer la dll/ocx (html.ocx):regsvr32 a echoué  renvoie l'erreur 0x3

Reply

Marsh Posté le 14-12-2007 à 10:50:54    

quand je fais ignorer il me fait l'erreur pour toute les autres dll et ocx  
 
c bizzare vous avez une idée ...

Reply

Marsh Posté le 14-12-2007 à 11:07:56    

Tu as les droits admins ?
Essaie plutôt ça pour les ocx :

Code :
  1. Source: "truc.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver


et ça pour les dll

Code :
  1. Source: "truc.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver


 
Et jette un coup d'oeil ici aussi : Howto: intalling vb6 applications with inno settup


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 14-12-2007 à 11:42:07    

La commande regsvr32 sert à faire la même chose que ce que suggère kao98 via InnoSetup.
Si le lancement de la commande n'a pas permit de régler ton problème, il y a peu de chance que via InnoSetup ça marche mieux.

Reply

Marsh Posté le 14-12-2007 à 11:47:42    

Il n'a pas utilisé la commande regsvr32, il passait par le script inno setup, et c'est le prog d'install qui lui a renvoyé cette erreur (enfin, oui, je sais, c'est regsvr32 qui a renvoyé l'erreur, mais de modifier le script modifiera sans doute l'appel à regsvr32).


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 14-12-2007 à 12:29:00    

exact ça passe par regsvr32 puis ça me fait l'erreur  
 
code 0x3  lorsque j'installe avec inno setup  
 
là je refait tout le setup dès le début en fonction du lien que ma envoyé kao  
 
je vous tiens au courant  
 
merci
 

Reply

Marsh Posté le 14-12-2007 à 14:05:51    

re à tous
 
he bien j'ai refait mon setup nikel grace au lien de kao , je n'ai plus d'erreur s de regsvr32 à l'installation mais j'ai toujours le même probleme de composant  
 
>> erreur 340 : L'élément du groupe de contrôles '1' n'existe pas .  
je pense c'est lier au composant winsock que je load dynamiquement  
mais je comprend pas pourquoi ça marchine et pas sur l'autre ....
 
j'ai 4 h pour trouver car c' un produit client  
please ... i need help  
 
merci par avance
 

Reply

Marsh Posté le 14-12-2007 à 14:14:08    

Comment tu charges ton composant ?
Donne nous un peu de code.
edit: et pourquoi tu le charges dynamiquement ?

Message cité 1 fois
Message édité par tegu le 14-12-2007 à 14:16:11
Reply

Marsh Posté le 14-12-2007 à 14:17:32    

mnyware a écrit :

un peu de code ::::>>>>
 
Private Sub tcpserver_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
 
 
Nbre_client_current = Nombre_client - serveur.ListClient.ListCount
   
If Nbre_client_current = 0 Then
     
    For i = 0 To serveur.ListClient.ListCount
        If serveur.ListClient.ListCount = 0 Then Exit For
        tabligneip = Split(serveur.ListClient.List(i), "  " )
        If i = serveur.ListClient.ListCount Then Exit For
        If tabligneip(0) = TCPserver(0).RemoteHostIP Then GoTo here
         
    Next
    Exit Sub
     
here:
 
End If
 
If TCPserver(0).State <> sckClosed Then 'Si la connection n'est pas fermée,
 
    If Index = 0 Then
        intMax = intMax + 1
        Load TCPserver(intMax)
        TCPserver(intMax).LocalPort = 0
        c = TCPserver(0).RemoteHostIP
        TCPserver(intMax).accept requestID 'On accepte la connection qui arrive
        TCPserver(intMax).SendData "Debut"
        c = TCPserver(0).RemoteHost
    End If
     
End If
     
End Sub


 

tegu a écrit :

Comment tu charges ton composant ?
Donne nous un peu de code.
edit: et pourquoi tu le charges dynamiquement ?


Reply

Marsh Posté le 14-12-2007 à 14:24:26    

C'est le chargement de ton composant qui plante, donc c'est plutôt ce code là qui m'aurait intéressé.
Mais je constate quand même un truc. Tu utilises la syntaxe TCPserver(0) propre aux groupes de contrôles, en l'indiçant avec intMax.
Or avec la ligne « intMax = intMax + 1  » ton indice passe à 1, mais as-tu bien créé le deuxième Winsock qui correspond (on en revient au code du chargement des contrôles) ?
Laisse tomber, j'avais sauté une ligne

 

Le premier Winsock (indice 0) est chargé où ?


Message édité par tegu le 14-12-2007 à 14:27:07
Reply

Marsh Posté le 14-12-2007 à 14:26:12    

je le charge dynamiquement car c'est une appli serveur multiclient  
 
chaque fois qu'un client souhaite se connecter on load un winsock(nb) qui  devient un lien de communication exclusif entre ce client et le serveur .

Reply

Marsh Posté le 14-12-2007 à 14:31:06    

le code je l'ai pas inventé  
je l'ai récupéré dans l'aide de visual studio en fesant de légères modifications  
 
donc ça doit être autre que les régistres , les active X
car il s'exécute sur certain PC et pas d'autre

Reply

Marsh Posté le 14-12-2007 à 14:49:52    

Tu as des différences entre tes deux PC (OS, MS Office, IE, firewall, antivrus) ?

Reply

Marsh Posté le 14-12-2007 à 14:54:07    

Tiens je viens de voir un truc. C'est normal que tu affectes deux fois la variable c sans t'en servir entre temps ?

c = TCPserver(0).RemoteHostIP
TCPserver(intMax).accept requestID 'On accepte la connection qui arrive
TCPserver(intMax).SendData "Debut"
c = TCPserver(0).RemoteHost

Reply

Marsh Posté le 14-12-2007 à 15:22:40    

effectivement elle me sert à rien je lutilisait pour faire des tests  
je l'ai mis en commentaire  mais toujours pareil
 
quant à l'OS, IE  c'est le meme pour les deux
les deux n'ont pas office
firewall activé pr les deux  
un a un antivirus et pas l'autre ...

Reply

Marsh Posté le 14-12-2007 à 15:47:56    

Si le poste qui ne fonctionne pas est celui doté de l'antivirus, ça vaut le coup de creuser un peu la piste. Sans conviction.

Reply

Marsh Posté le 14-12-2007 à 16:35:41    

merci tegu  
 
j'ai installer le même antivirus mais ça marche toujours pas  
 
on est à cours d'idées je crois  
pffff .... ya des jours comme ça :@

Reply

Marsh Posté le 14-12-2007 à 17:30:57    

bon j'ai trouvé mon erreur j'ai mis des msgbox partout pour mieux reperer où était l'erreur  
c'etait dans une autre fonction  
il yavait vraiment un truc(1)=... qui avait rien à faire là  
 
hi hi hi ...sorry ... je suis honteuse là
 
mais j'ai appris beaucoup sur le inno setup ,ocx et dll today ;)
 
merci pour votre aide  :-)

Reply

Marsh Posté le 14-12-2007 à 19:32:06    

Content que tu es trouvé ! :jap:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed