Bonjour,
je cherche à obtenir le cpuid (ou processorId) mais tous les exemples que j'ai trouvé utilise WMI et ne sont pas très fonctionnel sur 2 pc différent j’obtiens le même cpuId avec cette méthode.
Version imprimable
Bonjour,
je cherche à obtenir le cpuid (ou processorId) mais tous les exemples que j'ai trouvé utilise WMI et ne sont pas très fonctionnel sur 2 pc différent j’obtiens le même cpuId avec cette méthode.
Salut,
Est-ce que tu peux montrer le code que tu as utilisé ? Peut-être que tu ne récupères pas la bonne info.
Ça doit ressembler à quelque chose du genre :
Code:
1
2
3
4
5
6
7
8
9 ManagementClass mc = new ManagementClass("win32_processor"); ManagementObjectCollection moc = mc.GetInstances(); string strProcId = string.Empty; string strTypeProc = string.Empty; foreach (ManagementObject mo in moc) { // On récupère uniquement le premier ID du CPU strProcId = mo.Properties["processorID"].Value.ToString(); break; }
ce code me retourne le même id sur 2 pc différent alors que le cpuid devrai être unique je penseCode:
1
2
3
4
5
6
7
8
9
10
11 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); ManagementObjectCollection mbsList = null; ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor"); mbsList = mbs.Get(); string id = ""; foreach (ManagementObject mo in mbsList) { id = mo["ProcessorID"].ToString(); }
Il n'est pas garanti à 100% que le processorId soit unique. Si le processeur n'implémente pas la commande CPUID, tu te retrouveras surement avec le même résultat...
Si tu veux de l'unicité sur tes machines, combines plusieurs informations (cpuid, id de l'OS, etc...)
ah d'accord merci pour l'info, y'a t'il un élément sur la machine permettant à coup sur de chopper son id, je veux reposer mon système de licence dessus c'est pour ça
L'Id de l'OS est censé être unique par exemple ;). Mais comme je te le disais avant, une combinaison d'infos de la machine sera une meilleure option (niveau sécurité).
Après quelles informations prendre, c'est pas évident. Il y a ceux déjà cité (procId, OS Id), tu peux regarder du côté des adresses mac des cartes réseau (encore que... il faut que tu sois sur une infrastructure stable, car un portable et les multiples possibilités d'activation de cartes réseau te rendront la tâche peu évidente...)
Sinon (et c'est un point de vue personnel), je m'orienterai plutôt vers des solutions existantes pour la gestion de licences (même si elles sont payantes). C'est moins de galères ^^
Par exemple : http://www.eziriz.com/