Suppression de l'éxécutable apres éxécution

Signaler
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
-
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
-
lu all !!

Je suis un gros nul en prog et j'aurais besoin de votre aide pour me donner un petit code qui supprimerai mon éxécutable quand son éxécution est finie.

Merci ;-)

z.·Z¯`·.z.·Z¯`·.z.·Z¯`·. :big) AzErTy25
8-) z.·Z¯`·.z.·Z¯`·.z.·Z¯`·.

8 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
Je pense pas que ca soit possible directement de l'interieur de ton programme (car tu ne peux pas supprime un fichier qui est en cours d'utilisation).
Par contre je pense que c'est faisable en creant un fichier .bat qui supprimera ton exe et qui t'autosuprimera ensuite (un .bat peut t'autodetruire tout seul).
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Merci pour ta réponse. Je venais just d'y pensé avant de voir ta réponse. Mais le prob, c'est que je ne sais pas comment faire s'auto-détruire un batch :'( et je sais pas trop comment comment faire pour créer le batch depuis l'éxécutable. Sa crain, c chiant d'etre un newbee lol. J'espere que toi qui a la chance de bien t'y connaitre pourra m'aider :-)

z.·Z¯`·.z.·Z¯`·.z.·Z¯`·. :big) AzErTy25
8-) z.·Z¯`·.z.·Z¯`·.z.·Z¯`·.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Ton .bat:

echo off
del chemin_du_exe
del chemin_du_bat

c'est tout.

Ton .exe:
1) Tu crée le fichier .bat ci dessus avec les fonctions fopen(), fputs(), fclose().
2) Dans la derniere instruction de ton prog (juste avant le return 0, enfin, en dernier!), tu appelle lance le .bat avec ShellExecute(NULL, "open", chemin_du_bat, NULL, NULL, NULL);

Voila, tu as tout ce qu'il te faut, essaye de le faire et si tu n'y arrive pas je suis la.
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Cool t'es trop sympa, merci. Je vais essayer de suite ;-)

z.·Z¯`·.z.·Z¯`·.z.·Z¯`·. :big) AzErTy25
8-) z.·Z¯`·.z.·Z¯`·.z.·Z¯`·.
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Salut !!

Sérieu, j'y comprend rien en C lol. J'ai lu plusieurs tuto mais j'y arrive trop pas :'( J'accepte volontier que tu m'aide.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
Bon alors, on declare 2 chaines de caracteres szEXE et szBAT qui contiendront les chemins des 2 fichiers. On definie szBAT manuellement, on appelle GetModuleFilename pour obtenir le chemin du fichier exe.
On ouvre un fichier a l'endroit szBAT, on ecrit les 3 lignes de commande msdos, on ferme.
On lance tout ca avec ShellExecute en dernier dans le prog.

Tout ca ca fait un prog qui disparait quand on double clic dessus.

#include <stdio.h>
#include <windows.h>

int main(void)
{
FILE * FileBat;
char szEXE[256];
char szBAT[256] = "c:\\temp.bat";
GetModuleFileName(NULL, szEXE, sizeof(szEXE)); // on rempli szPathEXEFileBat fopen(szBAT, "ab"); // ab ecriture binaire
fputs("echo off\r\n", FileBat); // \r\n = on passe a la ligne suivante
fprintf(FileBat, "del %s\r\ndel %s\r\n", szEXE, szBAT);
fclose(FileBat); // .le bat est créé
ShellExecute(NULL, "open", szBAT, NULL, NULL, NULL);
return 0;
}
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Merci, sa fonctionne impec. C cool de ta par mec de m'avoir aidé, c'est avec des gens comme toi que l'on progresse et qui fait avancé la communauté !

@ la prochaine ;-)
bonne journée
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
mais de rien :)