Vous
avez écrit un superbe programme, vous ne souhaitez pas qu'il
soit copié partout ?
Bien sûr vous avez mis en oeuvre la sécurité
utilisateur, et fait un fichier .mde
Voici quelques pistes supplémentaires:
1 -
Dans un module placez ceci (à adapter bien sûr...):
Public Sub
Protection(frm As Form)
Dim NomBase As String, stFraude
As String, cle As String
stFraude = ""
DLC = True
'-- vérifie un nom dans l'en-tête
(voir
aussi la fiche 05) une zone de
texte de chaque
'-- formulaire doit s'appeler [EnTête]
If InStr(frm![EnTête], "monNom")
= 0 Then
DLC = False
stFraude = stFraude & " ABC"
End If
' -- si version démonstration
If InStr(frm![EnTête], "stration") = 0 Then
DLC = False
stFraude = stFraude & " VD"
End If
' -- vérifie le nom de la ville
If InStr(frm![EnTête], "Vannes") = 0 Then
DLC = False
stFraude = stFraude & " NV"
End If
' -- instaure une date limite au fonctionnement
' attention, date anglo saxonne - s'arrête de marcher après
cette date
If Date > #12/31/2003# Then
DLC = False
stFraude = stFraude & " DT"
End If
' -- vérifie le nom de la base
NomBase = CurrentDb.Name
If Left$(NomBase, Len(NomBase) - 1) <> "C:\monRep\maBase_prog.md"
Then
DLC = False
stFraude = stFraude & " NB "
End If
' Comadsl.dll Ce fichier ne sert à
rien, seule son existence est vérifiée.
' Si le logiciel est déplacé sur une autre machine
sans la présence de ce fichier,
' il ne marche plus. N'importe quel fichier copié/collé
puis renommé sous ce nom fera l'affaire.
' Ne pas l'oublier dans le package d'installation ...
If Len(Dir("C:\Windows\System\Comadsl.dll"))
= 0 Then
DLC = False
stFraude = stFraude & " XY"
End If
End Sub
2 -
Dans la procédure sous-jacente de l'évènement
"sur ouverture" de la plupart des formulaires placez ceci:
Protection
Me
If DLC = False Then
MsgBox "Pour éviter de perdre vos données et
pouvoir redémarrer," & vbCrLf & "Veuillez
contacter l'assistance technique (Mr DUPONT) au 06.88.99.00.00"
& vbCrLf & "en indiquant ce code: " & stFraude,
vbCritical, "A T T E N T I O N - Le programme vient de détecter
un problème."
DoCmd.Quit
End If
|
|