Détruire son programme (Version 2)

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 9 juil. 2008 à 19:22
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 11 juil. 2008 à 09:25
Bonjour à tous,
Suite à ce sujet :
http://www.vbfrance.com/infomsg_DETRUIRE-SON-PROGRAMME_1159599.aspx#24
J'ai crée un fichier batch de destruction, mais j'ai un dernier problème : (évident)
Mon algo:
Vérif des conditions de suppression
Création d'un fichier batch :

SW.WriteLine("del " & Application.ExecutablePath)
SW.WriteLine("del " & Application.StartupPath & "\Killer.Bat")
SW.Flush()
SW.Close()

Execution du batch
fermeture de l'application

On comprends bien qu'avec mon code le batch tente de supprimer l'executable de mon prog avant que ce dernier ne soit fermé.  J'ai donc pensé à deux solutions:
- Forcer la suppression de fichier même si il est en cours d'utilisation (Avec l'option /F de la commande del) --> sans succés
- Créer une tempo dans le batch pour laisser le temps à mon appli de se fermer, mais suite à de multiples recherches sur le net, je me suis rendu compte que créer une tempo était impossible. Il y a bien quelques bidouillages comme un truc avec le ping (essayé mais ne marche pas), importer des dll de win98 et modif le registre ...
Si quelqu'un a une solution...
merci d'avance

6 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 juil. 2008 à 20:20
Salut,

pas de tempo !?!

=============================
@ echo off

set nboucle=2000

:tempo
set /a compteur=compteur + 1
if %compteur%==%nboucle% goto fin
goto tempo

:fin
=============================

voila y a plus qu'a faire varier la valeur de nboucle pour trouver le temp de pause dont tu as besoin.
Ok la methode est empirique mais elle fonctionne. Si ton temps de pause ce compte en minute il existe une autre solution un peu plus compliquée.

Attention de ne pas rajouter d'espace dans les lignes de code sinon cela ne marchera plus.

A+
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
9 juil. 2008 à 20:56
Slt
C'est super ça marche !!! Merci bien
Mais je suppose que cela accapare le processeur ?
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 juil. 2008 à 23:57
euuuh... oui helas et c'est meme pas negligeable apparemment.  Je viens de faire le test:

configuration du test :
Windows XP pro sp2
2 x CPU intel xeon 2.66 Ghz (double CPU physique)
aucun autre processus en cour qui utilise le CPU

cette boucle prend 20% du 1er CPU

je suis en train de voir si il serait possible de boucler directement sur le del et d'arreter la boucle une fois le del effectué.
Mais je promet rien meme si cela me semble faisable.

A+
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
10 juil. 2008 à 10:45
Bonjour,

Et avec un "IF [NOT] EXIST nom_de_fichier commande" ?

http://nhen0039.chez-alice.fr/index.php
0

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

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 juil. 2008 à 18:01
Salut NHenry oui c'est bien comme cela que je l'entendais

@ echo off

:boucle
del monfichier
if not exist monfichier goto fin
goto boucle

:fin

Cette methode prend encore ~ 10% du CPU

A+
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 juil. 2008 à 09:25
Bonjour,

Enfin j'aurais plutot fais :

@ echo off

:boucle
del monfichier
if exist monfichier goto boucle

Mais bon, ça revient au même.
Sinon, il y a possibilité de faire une app console qui fait attendre (3~4 lignes de code), mais il faudrait la détruire aussi, mais cela ne devrait pas poser de pb.

http://nhen0039.chez-alice.fr/index.php
0
Rejoignez-nous