Fonction d'auto suppression de l'application ou elle se trouve; et comment faire un shareware assez sur.

Description

Comme le dit le titre, c'est un bout de code à mettre (une ligne) dans une procédure pour supprimer l'application ou la fonction est executer.

Cela peut etre utile pour ce que j'appelle des applications jetables, comme les shareware.

Source / Exemple :


'''DANS UN SUB'''

Option Explicit

'Décalaration de l'API pour executer un fichier à partir de son logiciel par défaut
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'Décalaration de la fonction à Appeler pour supprimer son application (Public)
Public Function SuppMe() As Boolean

    On Error GoTo F 's'il y a une erreur comme si lespace ou lappli est en lecture seule
                    'il va hor de la fonction
    
    'Décalaration des variables
    Dim ff As Integer, AdD As String, AdN As String
    
    AdD = App.Path 'Nom du dossier ou lappli se trouve
    If Mid(AdD, Len(AdD), 1) <> "\" Then AdD = AdD & "\" 'ex : si lappli a pour adresse de dossier "c:\windows" celle ci deviendra "c:\windows\"
    AdN = AdD & App.EXEName & ".exe" 'Ainsi l'adresse du type ex : "C:\windows\" deviendra "c:\windows\NomAppli.exe"
    If Dir(AdN, vbHidden) = "" Then Exit Function 'Si l'application n'existe pas (on sait jamais) on en va
    ff = FreeFile()
    Open AdD & "kill.bat" For Output As #ff
        Print #ff, "@ECHO OFF"
        Print #ff, "DEL " & AdN
        Print #ff, "DEL %0"
    Close #ff
    ShellExecute 0, "open", AdD & "kill.bat", 0, 0, 0
    End
F:

End Function
'''FIN'''

'''ATTENTION CELA EST JUSTE UN EXEMPLE'''
'''ATTENTION CELA EST JUSTE UN EXEMPLE'''
'''ATTENTION CELA EST JUSTE UN EXEMPLE'''

'''DANS VOTRE FORM DE SHAREWARE'''

Private Const An=2004
Private Const Mois=6
Private Const Jour=8

Private Sub Form_Load()' ou Sub Main() si c un module qui demarre la procedure

    If App.PrevInstance Then End
    
    If (Year(Date)>=An) And (Month(Date)>=Mois) And (Day(Date)>=Jour) Then If Not(SuppMe()) Then End

    '''Continuations du code

End Sub

'''FIN DE L'EXEMPLE'''

Conclusion :


Pour une meilleur efficacité n'oubliez pas de mettre la ligne suivante dans la procedure de demarrage (sub main, ou form_load)

If App.PrevInstance Then End

''Ceci évitera que votre programme soit ouvert plusieur fois donc quil ne soit pas ouvert pdt lauto suppression

Sinon le projet joint est un exemple modèle pour crée votre shareware vous aurez juste a vous baser dessus et changer la date d'expiration ou vous crée votre propre systeme (mais la c plu risqué)

Place aux comments ;)

Codes Sources

A voir également

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.