cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007
-
2 août 2003 à 01:44
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 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.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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).
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDerniè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 :-)
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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;
}