begin process at 2010 02 10 12:01:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > AUTO-DESTROY

AUTO-DESTROY


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :autodestruction Niveau :Débutant Date de création :13/01/2005 Date de mise à jour :13/01/2005 23:49:24 Vu / téléchargé :7 473 / 379

Auteur : draluorg

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (29)
Ajouter un commentaire et/ou une note


 Description

petite fonction qui permet a un programme de s'auto supprimer en se fermant
(suite a questoin sur forum)

Source

  • Option Explicit
  • Private Function AutoDestroy()
  • Dim SavSet As Integer
  • SavSet = FreeFile
  • Dim dell, StDel
  • dell = """" & App.Path & "\" & App.EXEName & ".exe" & """"
  • Open App.Path & "\del.bat" For Output As #SavSet
  • Print #SavSet, "echo o|del " & dell
  • Print #SavSet, "echo o|del del.bat"
  • Close #SavSet
  • DoEvents
  • StDel = Shell(App.Path & "\del.bat", vbHide)
  • End Function
  • Private Sub Form_Unload(Cancel As Integer)
  • AutoDestroy
  • End Sub
Option Explicit

Private Function AutoDestroy()
Dim SavSet As Integer
SavSet = FreeFile
Dim dell, StDel
dell = """" & App.Path & "\" & App.EXEName & ".exe" & """"
Open App.Path & "\del.bat" For Output As #SavSet
Print #SavSet, "echo o|del " & dell
Print #SavSet, "echo o|del del.bat"
Close #SavSet
DoEvents
StDel = Shell(App.Path & "\del.bat", vbHide)
End Function


Private Sub Form_Unload(Cancel As Integer)
AutoDestroy
End Sub


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 janvier 2005 23:49:24 :
;

 Sources du même auteur

Source avec Zip Source avec une capture GESTION DES PRIVILEGES DES PROCESSUS
Source avec Zip Source avec une capture TEMPS PROCESSEURS TOTAL ET PAR UNITÉ (API NATIVE)
Source avec Zip Source avec une capture ENREGISTRER ET CHARGER LISTVIEW DANS FICHIER AVEC IMAGE ETC....
Source avec Zip Source avec une capture GESTION DES FICHIERS SWAP
Source avec Zip Source avec une capture CLASSE POUR RÉCUPERER L'UTILISATION CPU D'UN PROCESSUS

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) SPACE - UN SPACE MAC POUR WINDOWS par vbnino
Source avec Zip Source .NET (Dotnet) MULTI THREAD AVEC AFFICHAGE par jaknight007
Source avec Zip Source .NET (Dotnet) COMPILATEUR EN VB NET 2003 par alpha5
Source avec Zip Source avec une capture CRYPTER AVEC LE CHIFFRE DES NIHILISTES RUSSES par tresorsdevie
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPTE_BANCAIRE.NET par Adn56

Commentaires et avis

Commentaire de Sipadan le 14/01/2005 06:41:23

Oooooooh, jolie et simple en plus.
@+,Yann.

Commentaire de PROTEUS91 le 14/01/2005 07:35:54

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.

Commentaire de jupiter le 14/01/2005 08:05:43

Je ne sais pas ou PROTEUS91 a vu un fichier del.bat mais pour moi le .exe disparait sans laisser aucune trace.

Commentaire de Elastycman le 14/01/2005 08:33:11

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

Commentaire de hoeppe le 14/01/2005 11:19: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.

Commentaire de JulioDelphi le 14/01/2005 11:58:17 administrateur CS

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é ;)

Commentaire de draluorg le 14/01/2005 12:54:28

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.

Commentaire de JulioDelphi le 14/01/2005 12:59:06 administrateur CS

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+

Commentaire de draluorg le 14/01/2005 13:02:12

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 @+

Commentaire de Pym Corp le 14/01/2005 14:45: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

Commentaire de draluorg le 14/01/2005 15:52:40

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

Commentaire de Pym Corp le 14/01/2005 16:58:18

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.

Commentaire de JulioDelphi le 14/01/2005 17:03:33 administrateur CS

100% d'accord

Commentaire de kalif le 14/01/2005 17:08:58

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 @+

Commentaire de JulioDelphi le 14/01/2005 17:20:40 administrateur CS

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+

Commentaire de lebarn le 14/01/2005 22:16:30

salut,

je trouve cette methode un peu lourd la suppression par batch

Commentaire de lebarn le 14/01/2005 22:36:24

je sais pas si il existe quelque chose ? surement

Commentaire de lebarn le 14/01/2005 22:37:47

je chercherais

Commentaire de pch le 15/01/2005 11:45:16

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

Commentaire de JulioDelphi le 15/01/2005 11:55:13 administrateur CS

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...

Commentaire de draluorg le 15/01/2005 13:46:03

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 .

Commentaire de draluorg le 15/01/2005 13:52:26

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....

Commentaire de pch le 15/01/2005 15:52:18

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.




Commentaire de draluorg le 15/01/2005 16:04:03

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 ?

Commentaire de pch le 15/01/2005 16:39:53

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

Commentaire de draluorg le 15/01/2005 19:05:58

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

Commentaire de hhhp2004 le 16/01/2005 00:43:32

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

Commentaire de draluorg le 16/01/2005 09:41:11

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!

Commentaire de pch le 16/01/2005 14:54:57

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).

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales