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 :

Ecraser un programme en cours d'execution


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 122
    Points
    122
    Par défaut Ecraser un programme en cours d'execution
    Bonjour,

    Y a t-il une manière d'ecraser un exe en cours d'execution ?
    Ce que je souhaite faire c'est une mise à jour de mon exe depuis un serveur FTP au alncement de celle-ci. La connexion FTP fonctionne très bien mais bien entendu il n'est pas possible de demander au programme de se remplacer lui même vu qu'il tourne...
    Quelle serait la méthode ?

    Stéphane

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 669
    Points : 7 016
    Points
    7 016
    Par défaut
    Renommer l'exe en cours d'exécution, avant de coller la nouvelle version.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Au lancement, ton exe A lance un exe B de détection de mise à jour.
    Celui ci stoppe le premier (A), fait la mise à jour, et le relance.

  4. #4
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Ou encore tu lance ton Exe A qui verifie les MAJ et si il y en a le met en place avant de lancer le programme principal B.

    Avantage : Le programme B n'a pas besoin d'attendre l'ordre de A pour se refermer, dès le lancement en plus. Et la demande de A ne risque pas d'arriver au mauvais moment.

    Inconveignant : delai de verification avant lancement de l'application principal.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par Harry
    Ou encore tu lance ton Exe A qui verifie les MAJ et si il y en a le met en place avant de lancer le programme principal B.

    Avantage : Le programme B n'a pas besoin d'attendre l'ordre de A pour se refermer, dès le lancement en plus. Et la demande de A ne risque pas d'arriver au mauvais moment.

    Inconveignant : delai de verification avant lancement de l'application principal.
    a moins que les 2 exe ne se lancent au meme moment, et si l'exe A détecte une mise à jour demande la fermeture de l'exe B (pour cause de mise à jour) puis remplace celui ci.

  6. #6
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    à titre informatif, voici comment procèdent les gars de TMS Software (TWebUpdate) :

    Considérons :
    L'application, qu'il faut (éventuellement) mettre à jour
    Un tout petit exécutable auxiliaire pour le remplacement.

    Mode opératoire :
    L'application, au lancement, cherche si une mise à jour existe.
    On trouve une mise à jour (admettons sinon c'est pas interessant )
    La mise à jour est téléchargée à côté de l'executable dans le fichier "MonAppli.exe_NEW".
    L'application lance le petit exécutable avec pour ordre d'effectuer le remplacement.
    L'application se termine dans la foulée.
    Le petit executable lancé par l'application attend que celle-ci soit effectivement terminée (du moins je présume).
    Le remplacement est effectué.
    L'executable relance l'application, puis quitte tout de suite apres. On se fout de savoir quand il aura effectivement quitté.
    L'aplication est à jour.

    Le composant TWebUpdate est gratuit pour une utilisation non commerciale.
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 122
    Points
    122
    Par défaut
    Bon ben en tout cas maintenant j'ai le plan de ce que je dois faire
    Faut que je vois maintenant comment faire tout ca
    En tout cas merci bien

  8. #8
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Pour détecter les mises à jour, un simple fichier texte sur le site web suffit.

    Tu extrait la version en cours du fichier texte puis tu compare avec la version de ton exe.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 122
    Points
    122
    Par défaut
    La mise à jour se lance au choix de l'utilisateur, c'est à dire qu'il la lance lui même depuis un menu, ensuite pour ce qui est de savoir si il faut faire la mise à jour ou pas c'est pas un problème, surtout avec la méthode du fichier texte contenant le numéro de version.
    D'ailleurs, existe t'il l'équivalent de la fonction md5sum de linux pour Delphi ?
    De cette manière on peux comparer le résultat sauvegardé dans un txt et celui récuperé depuis le fichier de mise à jour.

  10. #10
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Pourquoi un md5 ?
    Il y a plus simple, tu met la MAJ en ligne avec un numéro de version dans le nom.
    Tu regarde le nom du fichier en ligne (par FTP), si la version est plus recente que celle en cours tu propose la MAJ.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Pourquoi ne pas inclure la version directement dans l'exe? Si tu fais ça, le fichier aura le même nom, ce sera plus facile pour le trouver... Pour vérifier la mise à jour, tu compares les versions...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  12. #12
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 122
    Points
    122
    Par défaut
    C'est ok ca marche, mon prog appele un autre exe et se ferme, l'autre exe recupere le prog mais un y un truc bizarre, il se met en tache de fond, pas d'icone dans la barre, on dirais qu'il s'est fermé mais il tourne et il recupère bien la mise à jour.
    Comment éviter qu'il se mette en tache de fond ? car il y a un form avec une progressbar.

  13. #13
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Met ta fonction dans un TTimer que tu demarre dans le OnShow de la fiche, puis des que le timer tick avant de lancer la fonction tu coupe le timer.

    Comme ca ta fonction s'execute après l'affichage de la form et pas avant.

    Attention le .NET sur PDA peut causer des chutes de cheveux

Discussions similaires

  1. Ecraser un fichier en cours d'execution
    Par ValyGator dans le forum Windows
    Réponses: 11
    Dernier message: 13/11/2009, 15h30
  2. Réponses: 1
    Dernier message: 13/07/2007, 14h29
  3. Arreter Un Programme En Cours D'execution
    Par chakcc dans le forum Visual C++
    Réponses: 4
    Dernier message: 26/10/2006, 15h00
  4. Lister les programmes en cours d'execution
    Par jejerome dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 07/04/2006, 16h05
  5. [NetBeans] Arreter un programme en cours d'execution
    Par vallica dans le forum NetBeans
    Réponses: 3
    Dernier message: 08/12/2005, 12h24

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