Supprimer fichier

[Résolu]
Signaler
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010
-
Messages postés
41
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 mars 2006
-
Salut!
Comment fait-on pour qu'un fichier executable supprime lui-même?
J'ai déjà éssayé DeleteFile(), SHFileOperation() sans succès.
Merci.

5 réponses

Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Merci, j'ai trouvé la solution.
http://www.cppfrance.com/forum.v2.aspx?ID=293280
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Yop :D,



Pour qu'il se supprime lui même???? ben c'est impossible. Pour que un
fichier soit supprimable il faut que aucun processus ne l'utilise. Et
vu que ton programme est lancé lorsque celui ci demande de supprimer
sont propre fichier et bien ...erreur.



++ALL
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

o pire tu copy ton programme dans un autre endroit, tu crée une valeur du registre = a 1 et tu ShellExecute ton prog que tu a copié, en debut de prog tu met que si valeur = 1 on delete le fichier, il n'est plus visible par l'user mais le prob c'est qu'il est ailleurs, ca par exemple c'est le principe utilisé par les virus, mais bon supprimer concretement, c'est impossible si cela est lancé
.
Messages postés
509
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
3 août 2010

Comment fait-on alors les programmeurs pros pour supprimer le fichier de désinstallation lui-même à partir de ce même fichier?
Messages postés
41
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 mars 2006

un des solutions, c'est que ton exe creé un fichier clean.bat dans lequel tu mets:

REM temporisation avec un for le temps de finir ton exe genre 1s
xxx
REM delete de l'exe
del ton_fichier.exe
REM le bat peut s'auto effacer
del clean.bat

puis dans ton exe, tu lance clean.bat (spawn) sans syncro (P_NOWAIT) et tu fais un exit(0) pour quitter le plus rapidement ton programme.
derriere, le bat va faire le menage pour toi et s'auto effacer.