IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Astuces pour mettre à jour un exe ? [Trucs & Astuces]


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Homme Profil pro
    Concepteur/Développement
    Inscrit en
    Juin 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut Astuces pour mettre à jour un exe ?
    Bonjour,

    j'ai un exe qui vérifie sur un ftp s'il y a des mises à jour dispo. Si c'est le cas, il récupère les fichiers dans un rép.temporaire puis les copie dans le répertoire de l'application.
    Le hic, c'est que si l'exe est à mettre à jour, cela ne fonctionne pas car un exe ne peut se copier lui-même.

    Avez-vous une astuce pour contourner ce problème de manière simplet ?

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Ah ces p'tits jeunes qui ont oublié le fonctionnement de Windows.
    Gênant pour un programmeur

    - tu copies ton fichier sous un nom modifié (monAppli.ex_ par exemple)
    - tu ajoutes une entrée dans la clé rename de wininit.ini du type
    "nouveau nom"="ancien nom" ou tu crées le fichier s'il n'existe pas
    - puis tu envoies un message du style,
    «Vous devez redémarrer afin que l'actualisation soit effective ...»

    Au redémarrage, la copie de ton fichier viendra écraser l'ancienne version
    et le wininit.ini sera renommé en wininit.bak.

  3. #3
    Membre du Club
    Homme Profil pro
    Concepteur/Développement
    Inscrit en
    Juin 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur/Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    sympa !
    Je suppose que le wininit.ini est à placer dans le répertoire windows ?

    Et sans reboot, y a t'il des amateurs ?

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    après relecture, il est utile de préciser que wininit n'est utilisable qu'avec les versions 95 à ME
    pour NT et XP voir plutôt du coté de movefileex


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long
    avec MOVEFILE_DELAY_UNTIL_REBOOT (&H4) comme flag

  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    le batch marche tres bien sans reboot (escalon, sale copieur je l'avais dis avant)

    pour la peine, voici le code du programme batch qu'il te faut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo f | xcopy c:\monprog.exe c:\monprog2.exe > nul
     
     
    DEL c:\monprog.exe
     
     
    REN c:\monprog2.exe  monprog.exe
    DEL c:\change.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function ecriretxt(chem As String, tex As String)
    Dim transcript As String
    Open chem For Output Access Write As #1 
    transcript = tex
    Print #1, transcript 
    Close #1
    End Function
    et tu apelle comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    call ecriretxt(c:\change.bat, le_texte_que_je_t'ai_mis_au_dessus ) 
    'pour le texte, n'oublie pas les vbcrlf pour revenir à la ligne
    c'est complet
    salut
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/03/2014, 00h36
  2. Réponses: 1
    Dernier message: 16/05/2007, 20h31
  3. utilise le composant updatesql pour mettre à jour un champ
    Par andyafrique dans le forum C++Builder
    Réponses: 1
    Dernier message: 05/10/2006, 12h48
  4. Réponses: 3
    Dernier message: 26/09/2006, 11h17
  5. Réponses: 2
    Dernier message: 06/04/2006, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo