Relancer une application vb6 après mise à jour

Résolu
cs_Axen Messages postés 49 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 24 mars 2010 - 18 mars 2009 à 15:23
cs_Axen Messages postés 49 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 24 mars 2010 - 18 mars 2009 à 15:47
Bonjour,
je développe une petite application portable en vb6 qui se met à jour via internet mon souci se trouve après la mise à jour, certain me surement diront détail sans importance mais bon... donc voici le sub qui me pose problème

Private Sub MiseAJour()
Dim Fso As Object
Dim Fichier As String, Ver As String, AppliPath As String
Dim retval As Long

AppliPath = App.Path & ""
Ver = ""
Set Fso = CreateObject("Scripting.FileSystemObject")
Do Until Ver <> ""
    Ver = Fso.GetFileVersion(AppliPath & "WishListDB.exe")
    DoEvents
Loop
Fichier = "OldWLDB_" & Ver & ".exe"
Name AppliPath & "WishListDB.exe" As AppliPath & Fichier
Do Until Fso.GetFileVersion(AppliPath & Fichier) <> ""
    DoEvents
Loop
If Not ExistFolder(AppliPath & "OldVersions") Then MkDir AppliPath & "OldVersions"
FileCopy AppliPath & Fichier, AppliPath & "OldVersions" & Fichier
Do Until Fso.GetFileVersion(AppliPath & "OldVersions" & Fichier) <> ""
    DoEvents
Loop
Name AppliPath & "WishListDB_2.exe" As AppliPath & "WishListDB.exe"
Do Until Fso.GetFileVersion(AppliPath & "WishListDB.exe") <> ""
    DoEvents
Loop
MsgBox "Mise à jour effectuée, cliquez sur 'OK' pour relancer l'application !"
Shell AppliPath & "WishListDB.exe"
End
End Sub

la commande me posant problème étant en vert lorsque j'exécute l'appli, suite à une maj j'ai le message suivant :
erreur d'exécution '75'
erreur dans le chemin d'accès

Alors je me doute bien que renommer l'exe que je suis entrain d'exécuter ne doit pas aider mais je n'ai pas trouvé d'autre moyen et cela fonctionne quand même !
au moment de l'erreur j'ai bien dans mon dossier
l'appli WishListDB.exe a bien été renommée en OldWLDB_x.x.x.x.exe
la copie de OldWLDB_x.x.x.x.exe est dans le dossier OldVersions
la mise à jour WishListDB_2.exe a bien été renommée en WishListDB.exe

la suppression de OldWLDB_x.x.x.x.exe dans le dossier de l'appli se fait à la relance seulement (dans un autre sub)

si il n'y a pas de soluce je repasserais par une relance manuelle de l'appli ce n'est pas bien grave, c'est juste que ça me titille !

ah oui et au vue de ce que j'ai lu en recherchant (si si promis j'ai recherché avant de poser la question ^^) , je ne suis pas sous win95 mais sous XP

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mars 2009 à 15:35
tu peux effectivement pas te renommer toi même... (ben ouais ^^)

utilise un bête launcher.

quand je lance ce Launcher, donc :
- s'assurer que WishListDB.exe ne tourne pas déjà
- il cherche un 'WishListDB_2.exe'
- s'il le trouve, tu archive ou supprime 'WishListDB.exe'
tu renomme la nouvelle version
- tu lance 'WishListDB.exe'

et voilà ^^

dans ton soft, coté mise a jour, tu as juste a télécharger WishListDB_2.exe
de proposer par exemple a l'user de relancer ou non le soft.

tu n'a plus qu'a initier le launcher, et stopper ton soft.
3
cs_Axen Messages postés 49 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 24 mars 2010
18 mars 2009 à 15:47
ralala c'est bien d'avoir un avis extérieur, à trop avoir le nez dedans on ne voit plus ce qui parait évident, l'idée du launcher est excellente je te remercie
je risque de l'adapter à ma sauce pour en faire un espère de switcher car l'appli est déjà en cours d'utilisation et je veux que tout reste transparant pour les utilisateurs mais le principe est le même !
0
Rejoignez-nous