Bonjour,
Est-il possible en C de récupérer le numéro de série de la carte mère ou du processeur d'un ordinateur?
Bonjour,
Est-il possible en C de récupérer le numéro de série de la carte mère ou du processeur d'un ordinateur?
impossible à réalisé en c j'ai l'impression
sinon si ce n'est pas faisable, récupérer le numéro de licence Windows pourrait être une solution.
comment je pourrais faire en c?
Que cherches-tu à faire en gros?
j'ai un programme en c, et je souhaiterais que ce programme soit utilisé uniquement sur un pc unique. et je ne peut pas le faire avec l'adresse mac car certain pc n'ont pas de carte réseau.
Je sais pas si c'est assez claire.
merci de m'orienter
Si c'est pour une application professionnelle, il existe des clés USB fonctionnant comme un dongle. Une petite recherche chez te permettra de faire ton choix....
Évidemment, non. Le C ne sait pas ce qu'est une 'carte mère'. C'est un peu logique, non ? Je rappelle que c'est un lanage conçu pour être portable et donc indépendant (ou 'faire abstraction' ) de la plateforme matérielle
Par contre, il est possible que ton système dispose d'une telle fonction. Quel système ?
Il parle de licence windows , donc je déduis que c'est pour Windows, mais dans ce cas rien de portable.
Par contre on peut cherche avec la WinAPI. Mais je n'ai pas trouvé dans la MSDN ( enfin je sais pas trop quoi cherché non plus ... )
Une autre solution serait d'avoir un fichier "tampon". Au pire tu écris à la main ce fichier ... tu le cache ou tu veux. Avec ton programme tu essaie de lire le fichier ... si le fichier n'existe pas , on n'est pas sur le bon PC, il ne continue pas le programme.
merci,
j'ai trouvé ce petit bou de code qui permet de connaitre le numéro de série du DD sous windows mais j'ai rien trouvé pour une version linux.
ce n'est peux être pas possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main (void) { DWORD serial; DWORD MaximumComponentLength; DWORD FileSystemFlags; if(GetVolumeInformation("c:\\", NULL, 0, &serial, &MaximumComponentLength, &FileSystemFlags, NULL, 0) == TRUE) { printf("%.4x-%.4x\n", serial >> 16, serial & 0xffff); } else { // traitement d'erreur ... } }
Ce n'est pas un vrai nuléro de série que tu récupères mais plutôt un numéro qui est fixé lors du formattage du disque dur. Ce numéro est inscrit dans le file system (c'est un vieux truc dont on retrouve les origines avec le DOS). Si tu reformattes ton disque tu auras un autre numéro.
Pour récupérer le numéro de série du disque dur fournit pas le constructeur, je ne sais pas faire (peut être avec WMI ?)
Et ça http://forums.sun.com/thread.jspa?threadID=5077725 ?
Ou encore: # hdparm -i /dev/hda (Faire gaffe lorsqu'on joue avec hdparm quand même)
http://www.linuxquestions.org/questi...-number-23071/
Quelques ressources pour windows:
http://www.diskserialnumber.com/
Comme dit plus haut avec WMI. Réponse ici: http://forums.microsoft.com/MSDN/Sho...34850&SiteID=1 (avec du code en plus bon c'est pas du C mais c'est pas dûr à convertir)
http://vbnet.mvps.org/code/disk/smartide.htm peut être intéressant
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager