begin process at 2012 02 12 19:48:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > SUPPRIMER AUTOMATIQUEMENT SON EXÉCUTABLE EN QUITTANT

SUPPRIMER AUTOMATIQUEMENT SON EXÉCUTABLE EN QUITTANT


 Information sur la source

Note :
8,8 / 10 - par 5 personnes
8,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Débutant Date de création :26/05/2004 Vu / téléchargé :4 196 / 386

Auteur : Jiggy35

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

J'avais besoin d'un outil comme cela et maintenant c'est fait.

Je sais pas si ça va vous être utile, mais il est intéressant de savoir qu'en utilisant un programme DOS en .bat il est possible de supprimer son propre programme ainsi que de faire s'auto-supprimer le batch lui-même.

Ceci peut être intéressant dans le cas d'un désinstalleur VB par exemple...

Source

  • Option Explicit
  • Private Sub Command1_Click()
  • Uninstall
  • End Sub
  • Private Sub Uninstall()
  • Dim fic As Integer
  • Dim str_bat As String
  • fic = FreeFile 'attribution automatique d'un numéro pour input
  • 'contenu du fichier bat de désinstallation
  • str_bat = "@echo off" & vbCrLf & _
  • "del " & App.EXEName & ".exe" & vbCrLf & _
  • "del %0"
  • 'le fichier uninst.bat ressemblera à ceci
  • '@echo off 'désactive l'affichage des messages
  • 'del monprogvb.exe 'supprime le programme VB
  • 'del %0 'auto-suppression du fichier bat
  • 'test si le fichier de désinstallation existe déjà
  • If Dir("uninst.bat") <> "" Then
  • Kill "uninst.bat"
  • End If
  • 'création du fichier uninst.bat
  • Open "uninst.bat" For Output As #fic
  • 'écriture du contenu du fichier bat
  • Print #fic, str_bat
  • 'fermeture du fichier
  • Close #fic
  • 'lancement du bat
  • Shell ("uninst.bat"), vbHide
  • 'on quitte
  • End
  • End Sub
Option Explicit

Private Sub Command1_Click()
    Uninstall
End Sub

Private Sub Uninstall()

    Dim fic As Integer
    Dim str_bat As String
    fic = FreeFile    'attribution automatique d'un numéro pour input

    'contenu du fichier bat de désinstallation
    str_bat = "@echo off" & vbCrLf & _
            "del " & App.EXEName & ".exe" & vbCrLf & _
            "del %0"
    
    'le fichier uninst.bat ressemblera à ceci
    '@echo off          'désactive l'affichage des messages
    'del monprogvb.exe  'supprime le programme VB
    'del %0             'auto-suppression du fichier bat
    
    
    'test si le fichier de désinstallation existe déjà
    If Dir("uninst.bat") <> "" Then
        Kill "uninst.bat"
    End If
    
    'création du fichier uninst.bat
    Open "uninst.bat" For Output As #fic
    'écriture du contenu du fichier bat
    Print #fic, str_bat
    'fermeture du fichier
    Close #fic
    
    'lancement du bat
    Shell ("uninst.bat"), vbHide

    'on quitte
    End
    
End Sub

 Conclusion

Un exemple est dans le zip.

Pour ceux qui ont le click facile, j'ai mis une copie de l'exe ;-)

 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


 Sources du même auteur

Source avec Zip VBVSPHP MAILER OU COMMENT ENVOYER UN MAIL SANS WINSOCK NI SE...
Source avec Zip CONNAÎTRE SON FAI (FOURNISSEUR D'ACCÈS À INTERNET)
Source avec Zip TEST DE VALIDITÉ DU FORMAT D'UNE ADRESSE E-MAIL ET SMTP

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

Commentaires et avis

Commentaire de PatDeLaYaute le 26/05/2004 13:27:12

Salut,
juste une chose tu aurait pu faire une chtit' recherche avant de mettre ta source
http://www.vbfrance.com/article.aspx?Val=4911

@+

Commentaire de Jiggy35 le 26/05/2004 13:58:23

J'avais pas mis les bons mots-clé certainement car j'avais pas trouvé.

Mais bon ça m'a pris 5 minutes et en plus je trouve le mien meilleur donc...

Mais merci du lien

ps: ton code est bien vu mais un peu compliqué...

Commentaire de juvamine le 26/05/2004 19:52:05

héhé je le garde de coté au ca sou un jour cela puisse me servir...
mince sko meme moi ké u lidée koi !! otan ke je men serv
en tout k jai testé ca marcheueueueu...


++
juva

Commentaire de TheHacker le 26/05/2004 20:25:14

ouai c cool, j'ne avais justement besoin et j'usis tombé dessus par hasard, merci.

PS:t aps obligé de supprimer le fichier uninst.bat car le "OUTPUT" remplace totalement le contenu du fichier si il existe, contrairement au "Append" qui ajoute au fichier deja existant.

Commentaire de juvamine le 26/05/2004 21:33:09

theHacker ta pa compris, le .bat est supprimé une fois la procédure finie, pr kil ne reste plus okune trace

++
juva

Commentaire de juvamine le 26/05/2004 21:34:58

jai rien dit !!! jmal lu mdr :p

Commentaire de Patrice99 le 27/05/2004 08:39:08

Bonne idée, je me suis servi d'une idée similaire pour lancer la décompression d'un logiciel Access avec un mot de passe dans un zip, et à la fin il recompressait puis supprimait la base Access automatiquement avec le même mot de passe qui était caché dans un autre batch qui était fourni dans le zip.

Commentaire de ciberrique le 23/11/2006 17:16:15

Hepp juste un truc, des traces il en reste le fichier est juste supprimer de la table Fat (pour les vieux) ou NTFS (pour les plus recent). Pour effacer un peu mieu les traces (ce n'est qu'un peu mieu car 5 passage n'est largement pas suffisant) :

    Dim i As Integer
    For i = 0 To 4
        Open App.Path & "/test.bmp" For Binary As #1
             Put #1, , Space(LOF(1))
            DoEvents
        Close #1
    Next i
    
Puis ensuite ta procedure d'autosuppression.

Le probleme c'est que tu ne peux pas executer de code sur ton fichier executable donc tu dois coder ca en batch mais la je n'ai pas les connaissances pour le faire...

Dans le cas d'un desinstalleur l'utilisation d'un batch est tres bien.

Commentaire de hackalexandres32 le 26/03/2008 01:58:45

sa marche pa si le non du prog contien un espace mais bravo pour léfor...

Commentaire de juvamine le 26/03/2008 12:18:19

bien sur que si mais il faut mettre le app.nameexe entre " "

    str_bat = "@echo off" & vbCrLf & _
            "del """ & App.EXEName & ".exe""" & vbCrLf & _
            "del %0"
comme ça.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,654 sec (4)

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