Salut
Comment je peux faire pour creer un programme qui delete lui meme quand je clique sur un bouton ?
Merci d'avance.....
Salut
Comment je peux faire pour creer un programme qui delete lui meme quand je clique sur un bouton ?
Merci d'avance.....
pas qu'est ce que je veux , pas de fermer l'application mais de effacer de mon disk dur......Envoyé par slimjoe
Merci aussi
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 ...........Envoyé par Yurck
C'est différent si c'est ce que tu veux faire alors tu devrais utiliser un logiciel d'installation style Installshield.Envoyé par aliwassem
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 ...
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 comprendreEnvoyé par Yurck
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
une application ne peut s'effacer d'elle-meme parce qu'elle est chargee en memoire comme le dit Yurck !Envoyé par aliwassem
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
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.......Envoyé par Mat.M
Merci encore
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 :
a+
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;
Merci beucoup ca marche avec moi tres bien mais avec le suivantEnvoyé par Yurck
Merci aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part Shellexecute(0,'open' ,PChar(application.exeName+'.bat'),nil,nil,SW_SHOWMINIMIZED);
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)
Partager