Question

Pour une exigence de générer par PC clés de licence, j'ai besoin du code qui renvoie une écurie et (presque) clé unique sur tout PC. Il ne Vous pour être garantie unique, mais à proximité. Il Finalité ont besoin d'être si raisonnablement stable, de sorte qu'un PC donné génère toujours le même résultat à moins que le matériel soit sensiblement modifié.

Ceci est une application Windows, en utilisant wxWidgets mais un Win32 ou une autre option est très bien.

Je pensais à l'adresse MAC mais qu'en est-ordinateurs portables qui peuvent désactiver systématiquement la carte réseau en mode d'économie d'énergie? Je suis tombé sur GetCurrentHwProfile mais il n'a pas tout à fait ressembler à ce que je veux?

Était-ce utile?

La solution

Je voudrais juste aller avec la méthode d'adresse MAC; lorsque les cartes sans fil / LAN sont éteints, ils affichent toujours dans Connexions réseau. Vous devez donc toujours être en mesure d'obtenir le MAC.

Considérez ceci: chaque fois que vous seriez en mesure de contacter votre serveur web ou tout ce que vous cataloguer ces ID avec, l'utilisateur va Vous pour avoir une certaine forme de carte réseau disponible <. / p>

Oh, et vous pourriez être en mesure d'utiliser le numéro de série du processeur des supports informatiques du client il.

Autres conseils

Comment l'utilisation du numéro de série du disque dur où Windows est installé?

La fonction GetVolumeInformation () volonté vous donner ce numéro de série. Pour accéder à l'ID attribué par le fournisseur de la place de l'harddisk ID attribué par Windows, vous pouvez utiliser la classe Win32_PhysicalMedia.

Pour déterminer le lecteur où Windows est installé, vous pouvez étendre la variable% windir » en utilisant la fonction ExpandEnvironmentStrings ()

Une autre option, si votre architecture permet, est d'utiliser UuidCreate () pour générer un GUID aléatoire lors de l'installation et de l'enregistrer de façon permanente dans le Registre. Ce GUID peut alors être utilisé comme ID tant que les restes de registre. Une nouvelle base de registre est généralement considéré comme une nouvelle installation.

Une troisième option est d'avoir un serveur bien connu attribuer les identifiants. Au démarrage, le logiciel pourrait rechercher l'ID dans le registre et si elle est introuvable, contacterait le serveur et lui fournir son adresse MAC, le nom d'hôte, harddisk numéro de série, la machine SID et un certain nombre d'informations indentifyable (clés).

Le serveur détermine alors si le client est déjà enregistré ou non sur la base des informations données. Le serveur pourrait avoir une politique détendue et par exemple exiger que la plupart des clés pour un match, de sorte que le mécanisme fonctionnerait même en cas d'une complète effacer du registre et si une partie (mais pas tous) du matériel était remplacé.

Je pense qu'il ne vraiment facile et méthode unique jusqu'à présent découvert ici.

  1. GetVolumeInformation récupère même pas près d'ID unique .....
  2. Pour utiliser une série de matériel est problématique, car la fabrication ne sont pas engagés à l'appuyèrent toujours et surtout de le garder globalement unique
  3. GetCurrentHwProfile récupère GUID mais sa valeur affectée par mineur! modifications matérielles ...
  4. Utilisation ... clé de produit apportera U pour traiter avec le logiciel volé -. Il y a beaucoup d'installations de pirates dans le monde entier
  5. Création de propre GUID et la conservation sous registre (en tout lieu) n'empêchera pas double emploi par clonage d'image ....
    etc... De mon point de vue de vue, la meilleure façon est de combiner: Liste Volume ID + MAC + machine SID + Nom de la machine. Et gérer évidemment du côté serveur politique de licence; 0)

Cordialement Mickel.

Pour un joli cerveau test de mort, je suis en utilisant le code ProductID du système d'exploitation et le nom de l'ordinateur - à la fois extrait du registre. Pas vraiment sûr, mais sa toute sécurité à faire semblant de toute façon.

modifier

Pour répondre à la question de John sur ce que je lis clés:

SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProductID

SYSTEM \ CurrentControlSet \ Control \ ComputerName \ ComputerName \ ComputerName

Comment l'utilisation du numéro de série d'une unité centrale de traitement. Je me souviens de Microsoft utilisé pour fournir un api pour ce qui exécuter le code assembleur nécessaire et vous redonner toutes sortes d'informations sur le processeur, y compris le numéro de série. Je ne sais pas si elle travaillerait avec des puces AMD ou non, je pense qu'il était spécifique intel.

Sûrement CPU Id est sûr et assez statique !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top