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

cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 2 août 2003 à 01:44
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 5 août 2003 à 16:19
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 août 2003 à 21:18
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).
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
2 août 2003 à 22:12
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¯`·.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 août 2003 à 22:38
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.
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
2 août 2003 à 22:40
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¯`·.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
3 août 2003 à 11:57
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.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
3 août 2003 à 14:32
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;
}
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
5 août 2003 à 16:15
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
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
5 août 2003 à 16:19
mais de rien :)
0
Rejoignez-nous