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

Langage Delphi Discussion :

Mise à jour d'executable


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Mise à jour d'executable
    Bonjour je voudrais faire mettre en place une mise à jour d'executable.

    Pour cela, je télécharge le fichier, en 'executable2.exe', jusque la pas de soucis il atterit bien dans le dossier.

    Puis j'ecris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Application.Terminate;
    // Je ferme l'application
    CopyFile(Pchar('executable2.exe'), PChar('executable.EXE'), False);
    // Je tente d'ecraser le fichier mais la ca bloque :(, pas de message d'erreur rien, le fichier n'est pourtant pas écrase.
    ShellExecute(Handle,'open',PChar('executable_V6.exe'),nil,nil,SW_SHOW);
    // Je relance mon application.
    Voyez vous mon erreur?ou auriez vous mis à jour l'executable à partir de l'executable d'une autre maniere?

    Je vous remercie d'avoir pris le temps de lire mon message.

    Bonne journee.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    L'erreur, je dirai, c'est que tu fais le Application.Terminate et ensuite tu lances les instructions de copy et autre...
    A mon avis, après la Application.Terminate, tu ne feras plus rien (vu que l'application sera quittée)...
    Cherche sur le forum avec les mots clé "Mis à jour logiciel", tu devrais trouver ton bonheur.

    A+

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 740
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 740
    Points : 13 285
    Points
    13 285
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    L'erreur, je dirai, c'est que tu fais le Application.Terminate et ensuite tu lances les instructions de copy et autre...
    A mon avis, après la Application.Terminate, tu ne feras plus rien (vu que l'application sera quittée)...
    Heureusement non ! Sinon il serait impossible de libérer des allocations
    Terminate ne sert qu'à nous faire sortir de la boucle Run.

    Pour savoir ce qui se passe avec CopyFile, il faut contrôler le résultat de cet appel avec GetLastError, mais c'est certainement un "accès refusé".

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Merci pour les reponses

    L'application se relance avec la derniere ligne mais la copie ne s'effectue pas, je vais regarder le message d'erreur mais j'ai bien peur de devoir m'y prendre autrement ...

  5. #5
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    la solution bof tu crée un .bat qui copie l'exécutable et s'efface et tu le lance caché avec shellexecute et tu quitte ton application

    tu crée un .exe charger de gérer les mise à jour plus de problème d'accès. c'est ce que j'ai fait

    il y en a d'autre sa revient souvent ce genre de problème sur les forums
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Heureusement non ! Sinon il serait impossible de libérer des allocations
    Terminate ne sert qu'à nous faire sortir de la boucle Run.

    Pour savoir ce qui se passe avec CopyFile, il faut contrôler le résultat de cet appel avec GetLastError, mais c'est certainement un "accès refusé".
    Oops, je ne savais pas
    Dans mon esprit, j'étais persuadé que cela ne fonctionnerait pas et que l'application se terminait sans traiter les événements situés après. (comme la méthode terminate en C++)...

    Je m'excuse donc pour avoir mentionné une réponse erronée.
    Merci Andnotor de m'avoir corrigé

  7. #7
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut rename
    bonjour

    Avant le copyfile il faut renommer le fichier qui appelle.
    En effet on peut renommer un exécutable en cours d'utilisation.
    ensuite on importe le bon fichier, en le lance
    Puis on ferme l'exe appelant.

    André

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 740
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 740
    Points : 13 285
    Points
    13 285
    Par défaut
    Citation Envoyé par ero-sennin Voir le message
    Dans mon esprit, j'étais persuadé que cela ne fonctionnerait pas et que l'application se terminait sans traiter les événements situés après. (comme la méthode terminate en C++)
    Ce qui correspondrait alors à Halt.

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    D'accord d'accord! Hé bien merci.
    Je ferai donc attention la prochaine fois.

Discussions similaires

  1. [AC-2010] execute une requete mise jour a partir d'une requete de regroupement
    Par karwafmhz dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/09/2013, 17h59
  2. Mise à jour à distance d'un jar en cours d'execution ?
    Par aurelien03 dans le forum Général Java
    Réponses: 6
    Dernier message: 06/02/2013, 10h49
  3. Execution sur mise à jour tableau croisé dynamique
    Par timmy1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/09/2011, 16h32
  4. Ordre physique d'execution d'une mise à jour
    Par ElPapyo dans le forum SQL
    Réponses: 3
    Dernier message: 11/10/2007, 13h50
  5. Réponses: 7
    Dernier message: 30/08/2006, 15h38

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