Supprimer automatiquement son exécutable en quittant

Soyez le premier à donner votre avis sur cette source.

Vue 6 221 fois - Téléchargée 541 fois

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 / Exemple :


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

Codes Sources

A voir également

Ajouter un commentaire Commentaires
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
26 mars 2008 à 12:18
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.
hackalexandres32 Messages postés 37 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 novembre 2008 1
26 mars 2008 à 01:58
sa marche pa si le non du prog contien un espace mais bravo pour léfor...
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
23 nov. 2006 à 17:16
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.
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
27 mai 2004 à 08:39
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.
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
26 mai 2004 à 21:34
jai rien dit !!! jmal lu mdr :p
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.