Supprimer automatiquement son exécutable en quittant

Soyez le premier à donner votre avis sur cette source.

Vue 6 105 fois - Téléchargée 490 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
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
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.
Messages postés
37
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
3 novembre 2008
1
sa marche pa si le non du prog contien un espace mais bravo pour léfor...
Messages postés
589
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
1
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.
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

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.
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
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.