Bonjour

Comme je l'indiquais dans un autre message, je suis en train d'"obfusquer" mon code pour éviter son "piratage".
Pour compléter le tout, je souhaite mettre en place une protection contre la recopie par le biais notamment de l'utilisation de la "mac address" du poste de travail.
Pour compliquer la tache de mes éventuels pirates () et puisque l'obfuscation ne fait pas tout, je voudrais remplacer certains termes "évidents" par des chaînes de caractères définies ailleurs.
Je m'explique sur un exemple avec une fonction telle que celle-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  Function MacAdressCourante()
        Dim objVMI As Object
        Dim vAdptr As Variant
        Dim objAdptr As Object
 
        Set objVMI = GetObject("winmgmts:\\" & "." & "\root\cimv2")
        Set vAdptr = objVMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
        For Each objAdptr In vAdptr
            If objAdptr.MACAddress <> "" Then
                MacAdressCourante = objAdptr.MACAddress
                Exit For
            End If
        Next objAdptr
    End Function
Pour éviter que "objAdptr.MACAddress" ne se voie comme le nez au milieu de la figure, je voudrais (je simplifie) définir plusieurs constantes (a="objad": b="ptr.MACAd":c="dress") définies "ailleurs" et écrire quelque chose du genre :
MacAdressCourante=Evaluate(a&b&c)
mais ça ne marche pas, pas plus d'ailleurs que MacAdressCourante=Evaluate("objAdptr.MACAddress")... J'obtiens une erreur 2029.

Pouvez-vous m'aider, s'il vous plait ? Est-ce simplement Evaluate qui ne marche pas comme je le crois ?

Merci d'avance
Gilbert