Autosuppression d'un prog delphi par un bat !

Résolu
cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005 - 11 sept. 2004 à 23:46
cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005 - 12 sept. 2004 à 11:41
Bon, je sais k'il existe des sujets similaires dans les forums, mais je n'ai pas trouver des réponses vraiment claires.

Je croi (je suis même sûr) qu'un prog en cours d'utilisation ne peut pas s'autodétruire. Il faut donc, je pense, faire appel à un bat (par shellexecute)qui lui pourra supprimer mon appli une foi fermée.
Mais quelles sont les lignes de code à rentrer dans le .bat affin de :

-supprimer un exe sur le disque dur
-de supprimer le bat lui même (je croi k'un bat peut par contre s'autodétruire)

Merci d'avance pour vos réponses qui éclairerons mon chemin je l'espère ...

swop

2 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
12 sept. 2004 à 02:04
Slt !
En effet, comme tu le dis, les fichiers bat sont auto-destructibles...
:) :) :) :)

Code à mettre dans le fichier bat :
@echo off
cls
echo Ce fichier bat va supprimer l'application ''machin''
echo Appuyez sur une touche pour continuer ou fermez la fenetre pour annuler
Pause
DEL "%cd%\Prog.exe"
DEL "%cd%\FichierBAT.bat"

Remarque : %cd% renvoie le répertoire dans lequel est exécuté le fichier .BAT

Pour que ce code fonctionne correctement, il faut que tu stoppes l'application Delphi immédiatement après l'appel au fichier bat, sinon il risque de s'exécuter avant que l'application dephi soit terminée, c'est à dire qu'il ne pourra pas supprimer le programme.
Par précaution, j'ai inséré dans le code du BAT une demande de confirmation, pour laisser le temps à l'application de se fermer correctement.

Code à mettre dans l'application Delphi :
Uses
 ShellAPI

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute (handle,'Open', PChar(ExtractFilePath(Application.ExeName)+'FichierBAT.bat') ,'','', SW_SHOWNORMAL);
  Application.Terminate;
end;


@+
:)
Bonne prog !
Nico
3
cs_Swop Messages postés 20 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 1 juin 2005
12 sept. 2004 à 11:41
merci ni69 !
je vai essayer ca, mé ca me semble bon qd même !

merci bcp
swop
0
Rejoignez-nous