IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Comment créer un système de licence en VBA sur Excel ? [XL-2010]


Sujet :

Conception

  1. #1
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Comment créer un système de licence en VBA sur Excel ?
    Bonjour,

    Je souhaiterais réaliser un programme en VBA sur Excel, puis le commercialiser.

    Savez-vous s'il existe une solution pour limiter l'utilisation de l'application à un seul poste dans une entreprise.
    Par exemple, je ne voudrais pas que le fichier que je vends à une entreprise de 10 salariés soit utilisé pour les 10 salariés alors que la société m'a acquis les droits pour un seul poste.

    Merci d'avance.
      0  0

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Un utilisateur chevronné rentrera dans ton code et virera les sécurités. Si c'est des handicapés regarde du coté du HD number ou du nom d'environnement.
      1  0

  3. #3
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Même si ce n'est pas fiable à 100 %, cela limitera grandement les copies illicites. Mais qu'es ce que l'HD number ? Je n'ai rien trouvé sur google.
    Merci d'avance
      0  0

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Declare PtrSafe Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
     
    Sub Serial()
    Dim Serial As Long, VName As String, FSName As String
        VName = String$(255, Chr$(0))
        FSName = String$(255, Chr$(0))
        GetVolumeInformation "C:\", VName, 255, Serial, 0, 0, FSName, 255
        VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
        FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)
        seriall = Str$(Serial)
    End Sub
    Numéro de série du disque dur

    Vire le Ptrsafe sur du 32 bits
      1  0

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je t’ai créé un petit algorithme qui gère les licences.
    Par contre elle est liée à la machine et pas l’utilisateur car elle utilise la base de registres.
    Je t’invite à faire la partie génération de licence dans un fichier séparé.

    Je récupère les informations de la machine conjoint avec la date, je le hache en MD5 pour obtenir un N° à 13 chiffres que le client te transmet pour que tu lui fournisses ça licence.
    Fichiers attachés Fichiers attachés
      0  1

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Sympa, mais si c'est du 64bits il faudra mettre des PTRSAFE dans tous tes sub et fonctions déclarées!
      3  1

  7. #7
    Invité
    Invité(e)
    Par défaut
    je regarde ça demain sur une autre machine mais je pense qu'a ce niveau ça ne change pas "HKEY_LOCAL_MACHINE\SOFTWARE\" vérifier si tu as un 64b fais un regedit pour voir.
    j'ai déjà fait sur Office2010 64b mais t'a raison 2 précaution valent mieux qu’une.
      0  0

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    je suis sur du 64 et toutes tes fonctions déclarées sont en rouge et me demandent de mettre un ptrsafe
      3  0

  9. #9
    Invité
    Invité(e)
    Par défaut
    OK je reprend ma copie, je regarde demain les modifs à apporter.
    en tous les cas je pense que ça peut être une bonne piste?
      0  1

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Ouais ouais c'est top une clé de codage. Par contre ça compléxifie le déploiement. Moi je demande juste le username et je modifie dans le code avec une un test en ouverture...

    Je me dis que s'ils s'y connaissent un minimum en programmation ils casseront les sécurités en dix minutes.
      3  2

  11. #11
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Merci pour ta contribution à mon problème.

    Je t'avoue que je ne suis pas un expert en VBA et je n'arrive pas à décrypter ton code.

    Si j'ai bien compris, une partie du code (mais quelle partie?) doit figurer dans un document Excel que le client ouvrira pour que l'identité de la machine soit connue.

    Le client me renvoie ensuite le fichier Excel pour que je puisse avoir accès aux informations de la machine.

    Je génère donc ensuite un numéro de licence avec ces informations (quelle partie du code me le permet-il ?).

    Puis j'envoie mon programme au client dans lequel j'ai préalablement autorisé tel numéro de licence. Cela signifie qu'à chaque ouverture du programme, il doit tester l'identité de la machine, j'imagine ?

    Merci en tout cas pour ton aide.
      0  0

  12. #12
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Pas du tout mais robert te répondra!
      3  2

  13. #13
    Invité
    Invité(e)
    Par défaut
    Ici, l’idée est d’avoir un fichier Excel (ton application) totalement indépendante du gestionnaire de licence.

    De pouvoir, si tu as prévue une mutualisation de l’application sur un serveur, exiger une licence supplémentaire si l’application est utilisée sur une machine pour laquelle le client n’a pas acheté de licence. En d’autre terme une machine une licence.

    Il n’y a pas besoin de triturer le code de l’application pour qu’une nouvelle licence soit exigible. Tout est prévu dans l’application.

    A l’ouverture de l’application, un contrôle de la licence est effectué, si l’ordinateur sur le quel l’application est exécuté n’a pas de licence, l’application prépare la base de registre pour recevoir la valeur de la licence. Pour ce faire un certain nombre d’information sont collectées affin d’obtenir un code produit ou N° de série intimement représentative de la machine et non trouvable sur une autre, donc unique.

    L’application ouvre un masque de saisie pour entrer le N° de licence voir Image. Bien évidement le client doit te formuler une demande d’achat de la licence en te fournissant le code produit généré par l’application et lisible sur ce même masque.

    De ton coté, tu dispose d’un fichier Excel où sont renseigné le nom de tes clients ainsi que les informations liées à leurs logiciel. Il te suffis d’entre le code produit dans la colonne [Code Produit] et de lui retourner sa licence lisible dan la colonne [Licence]. Il n’y a rien d’autre à faire.

    Bien sur, si cette vision de la gestion des licences te convient, et après avoir pris en considération les remarques justifiées d’ EngueEngue, je t’expliquerai comment l’intégrer dans ton code.
    Images attachées Images attachées   
    Dernière modification par Invité ; 27/08/2013 à 21h51.
      6  1

  14. #14
    Membre à l'essai
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    et bien, cela me semble un très bon concept !
    Je suis preneur pour le mode d'emploi d'intégration du code !

    par contre, je ne comprends pas "la mutualisation de l’application sur un serveur pour avoir une licence pour une machine". Désolé, je ne suis pas informaticien de métier
      0  0

  15. #15
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Si tu mets le fichier excel sur un serveur executable par tous les utilisateurs qui peuvent se connecter au serveur...

    Le fichier reste sur une machine et les autres machines se connectent à celle ci pour s'en servir.

    Par contre, Robert, si tu utilises le fichier en local avec des connexions distantes, par exemple avec "TeamViewer", la mutualisation permettra de passer outre la licence, si je ne m'abuse.
      6  1

  16. #16
    Invité
    Invité(e)
    Par défaut
    Par contre, Robert, si tu utilises le fichier en local avec des connexions distantes, par exemple avec "TeamViewer", la mutualisation permettra de passer outre la licence, si je ne m'abuse.
    d'une certaine manière, tu à raison, car "TeamViewer" permet de ce connecter à distance sur une machine.

    Si le fichier excel est déjà ouvert par un autre utilisateur, donc avec une licence valide sur la machine distante, le fichier sera en lecture seule et le travail devra être sauvegardé dans un autre fichier. un travail de regroupement des données devra être effectué par un utilisateur unique.
    ça c'est dans le meilleur des cas car il est fort probable que les 2 utilisateur travail sur le même fichier et là bonne bour ! car écrire à 2 dans la même cellule bonjour.
    pour info EngueEngue c'est pas moi qui te colle des note négative.
    Dernière modification par Invité ; 28/08/2013 à 11h21.
      2  1

  17. #17
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Il suffit d'ouvrir quinze fois le fichier en changeant le nom dans des instances différentes!

    Ne t'en fais pas pour les notes négatives j'ai 800 messages et 800 points j'en suis habitué. Peut être que je suis un peu trop sec avec certains abrutis!
      8  3

  18. #18
    Invité
    Invité(e)
    Par défaut
    ceci dit, il n'existe pas de protection totalement efficace, mais 95% c'est largement suffisant.

    nous raisonnons en informaticien, voire en acker potentiel, ce qui nous fait perdre de vue que Windows est sans doute le système d'exploitation le plus piraté et que Microsoft n'a toujours pas glissé la clé sous la porte.
      8  1

  19. #19
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Une protection interne à Office ne résistera qu'à un simple utilisateur …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
      1  0

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Salut Robert,

    Félicitation !!

    Si je comprends bien, il faut insérer les 4 modules et ton module de classe ds le fichier du client, et lui faire faire la comparaison en fonction de la licence?
    là trop fort!!!

    Mais en attendant ça fera 2 points !

    et pour
    pour info EngueEngue c'est pas moi qui te colle des note négative
    Je ne comprend pas pourquoi on retire des points sans se justifié et pour EngueEngue, en tout cas ici je ne comprends pas!
    Cordialement,

    Jijie
      2  1

Discussion fermée
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. comment Créer un système de pagination automatique
    Par soufiane656 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/06/2015, 13h07
  2. créer un système de licence en VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/09/2014, 13h29
  3. Comment créer un systéme d'exploitation ?
    Par vermersch.vermersch2 dans le forum Autres systèmes
    Réponses: 2
    Dernier message: 19/09/2013, 15h21
  4. [XL-2003] Comment créer un tableau de graphique en VBA
    Par guica dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/08/2010, 10h49
  5. Comment créer un Système multi-station
    Par Vendelin dans le forum Ordinateurs
    Réponses: 4
    Dernier message: 21/01/2009, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo