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

Delphi Discussion :

Un Programme Delete Lui Meme


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut Un Programme Delete Lui Meme
    Salut

    Comment je peux faire pour creer un programme qui delete lui meme quand je clique sur un bouton ?

    Merci d'avance.....

  2. #2
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Application.Terminate ?
    Application.MainForm.Close ?

  3. #3
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par slimjoe
    Application.Terminate ?
    Application.MainForm.Close ?
    pas qu'est ce que je veux , pas de fermer l'application mais de effacer de mon disk dur......

    Merci aussi

  4. #4
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bonjour,

    Sous windows ?
    Oui !
    bien alors sous windows tu ne peux pas supprimer ujn exécutable qui est monté en mémoire.
    Donc il faut faire appel à une application extérieure.
    - Soit une DLL
    - Soit un Batch
    - Soit faire un exe

    à qui on fournit le nom de l'application à supprimer.
    puis on quitte la dite application.

    En plus simple et moins efficace :
    Renommer l'exécutable afin de simuler sa destruction, cela permettra de le changer et de répertoire et d'extension.



    a+

  5. #5
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par Yurck
    Bonjour,

    Sous windows ?
    Oui !
    bien alors sous windows tu ne peux pas supprimer ujn exécutable qui est monté en mémoire.
    Donc il faut faire appel à une application extérieure.
    - Soit une DLL
    - Soit un Batch
    - Soit faire un exe

    à qui on fournit le nom de l'application à supprimer.
    puis on quitte la dite application.

    En plus simple et moins efficace :
    Renommer l'exécutable afin de simuler sa destruction, cela permettra de le changer et de répertoire et d'extension.
    a+
    ok c'est un peu clair mais je sais pas par example quand on uninstalle un logiciel , il efface tout les fichiers aussi le programme lui meme et le repertoire ...........

  6. #6
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Citation Envoyé par aliwassem
    ok c'est un peu clair mais je sais pas par example quand on uninstalle un logiciel , il efface tout les fichiers aussi le programme lui meme et le repertoire ...........
    C'est différent si c'est ce que tu veux faire alors tu devrais utiliser un logiciel d'installation style Installshield.

  7. #7
    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 : 39
    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
    Par défaut
    Salut,
    Comme l'a dit Yurck, tu peux faire un fichier batch en quittant l'application, celui-ci s'exécutant au prochain redémarrage de windows.

    L'intérêt d'un tel fichier c'est que lui peut s'auto supprimer après!

    C'est une solution parmis d'autres à explorer ...

    Existe aussi Inno Setup mais je sais pas si il le gère ca ...

  8. #8
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Non ton batch n'attends pas pour se lancer cela gâche l'intérêt du jeu.
    Il faut créer le process qui lance le batch et ensuite terminer l'application.

    a+

  9. #9
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par Yurck
    Non ton batch n'attends pas pour se lancer cela gâche l'intérêt du jeu.
    Il faut créer le process qui lance le batch et ensuite terminer l'application.

    a+
    maintenat peut etre je commance de comprendre

    quand je veux de deleter l'application soit lui meme creer un batch et l'executer et fermer l'apllication , et apres un temp il va effacer l'application..........

    je vais essaye ca
    merci

  10. #10
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par défaut
    Citation Envoyé par aliwassem
    Salut

    Comment je peux faire pour creer un programme qui delete lui meme quand je clique sur un bouton ?

    Merci d'avance.....
    une application ne peut s'effacer d'elle-meme parce qu'elle est chargee en memoire comme le dit Yurck !
    Sinon avec l'API win32 DeleteFile().
    Mais il faut que le programme soit ferme c'est donc le serpent qui se mord la queue

    Avec un autre programme ou fichier batch

  11. #11
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par Mat.M

    Avec un autre programme ou fichier batch
    merci ca qu'est ce que je l'arrive avec les reponse precedent , un batch , mais est ce que qq peut me dire comment je peut pour creer un fichier batch ou , ou je peux trouver des information sur les fichier batch.......

    Merci encore

  12. #12
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bonjour,

    Un batch c'est un fichier qui contient des commandes DOS (tu trouveras de l'aide dans l'aide windows).

    Tu trouveras dans la FAQ des méthode de creation de fichier.

    A la volée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Var 
      MonfichierBatch : TStringList;
    begin
      MonfichierBatch := TStringList.create;
      MonfichierBatch.Add('del '+ application.exeName);
      MonfichierBatch.SaveToFile(application.exeName+.'bat'); // la double extension ce n'est pas génant.
     
      Shellexecute('cmd ' + application.exeName+.'bat'); // regarde dans l'aide le shellexecute
      application.terminate;
     end;
    a+

  13. #13
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par Yurck

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Var 
      MonfichierBatch : TStringList;
    begin
      MonfichierBatch := TStringList.create;
      MonfichierBatch.Add('del '+ application.exeName);
      MonfichierBatch.SaveToFile(application.exeName+.'bat'); // la double extension ce n'est pas génant.
     
      Shellexecute('cmd ' + application.exeName+.'bat'); // regarde dans l'aide le shellexecute
      application.terminate;
     end;
    a+
    Merci beucoup ca marche avec moi tres bien mais avec le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shellexecute(0,'open'  ,PChar(application.exeName+'.bat'),nil,nil,SW_SHOWMINIMIZED);
    Merci aussi

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 101
    Par défaut
    Pour ceux que ça interesse, on peut utiliser le meme principe quand un programme se met a jour lui meme :
    * renommage de l'exe
    * telechargement nouvelle version (tidhttp, voir FAQ delphi)
    * on quitte l'appli lancée et on relance la nouvelle qui au démarrage supprime le fichier renommé. On peut meme faire un kill si l'exe est lancé plusieurs fois (voir faq il me semble pour le kill de processus)

    PS : Si le code précédent ne marche pas, pensez aux permissions du répertoire (lecture seule ou droits si le fichier est sur un réseau)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment un programme copier lui meme
    Par zizo89 dans le forum Delphi
    Réponses: 4
    Dernier message: 01/05/2007, 13h24
  2. Réponses: 1
    Dernier message: 26/04/2007, 11h13
  3. Clé Registre et copie du programme par lui même
    Par True Cluster dans le forum Windows
    Réponses: 5
    Dernier message: 13/03/2006, 13h59
  4. comment acceder a un component lui meme dans un panel
    Par mimosa7 dans le forum Composants
    Réponses: 2
    Dernier message: 16/11/2003, 23h02
  5. Réponses: 18
    Dernier message: 29/10/2003, 16h34

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