![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| C++ Forum d'entraide technique sur le langage C++. Avant de poster -> F.A.Q C++ |
![]() |
|
|
Outils de la discussion |
|
|
#2 (permalink) |
![]() Date d'inscription: mai 2007
Localisation: France
Messages: 2 066
|
Si pour toi le numéro de série physique d'un disque dur est celui donné par la commande "dir" (dans mon cas 0424-4424)
Code :
C:\Documents and Settings\xxx>dir
Le volume dans le lecteur C n'a pas de nom.
Le numéro de série du volume est 0424-4424
Répertoire de C:\Documents and Settings\xxx
...
Si c'est le numéro physique attribué par le constructeur (étiquette au dos du disque), alors je pense que l'on ne peut rien pour toi Dernière modification par ram-0000 ; 07/03/2008 à 22h52 Motif: orthographe |
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: mai 2007
Localisation: France
Messages: 2 066
|
Effectivement,
regarde ici alors : http://www.codeproject.com/KB/cs/har..._serialno.aspx Attention, cela ne marche qu'avec Windows XP, Windows Vista, Windows Serveur 2003 ou Windows Serveur 2008 |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: mai 2007
Localisation: France
Messages: 2 066
|
effectivement c'est pas du C++
par contre le numéro de série qui t'intéresse se récupère à l'aide d'une requete WMI "SELECT * FROM Win32_DiskDrive" et ici, tu as un projet pour faire des requetes WMI en C++ http://www.codeproject.com/KB/system...select=1131844 Donc en mélangeant les 2 projets, cela devrait être bon |
|
|
|
|
|
#7 (permalink) |
![]() |
Récupère ton numéro en C# et appelle ta fonction depuis ton code en C++
__________________
Partager grâce à l'open source et aux logiciels libres. "Never use brute force in fighting an exponential." (Andrei Alexandrescu) Conseils perso en vrac sur le C++ Une très bonne doc sur la STL (en) Why linux is better (fr) |
|
|
|
|
|
#10 (permalink) |
|
Membre Expert
![]() Date d'inscription: octobre 2006
Messages: 1 056
|
Tu parles de quoi?
Ce que j'ai donné c'est du c++, essaies par ex de compiler le prog suivant: Code :
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { system("dir c:\\ > out.txt"); ifstream out("out.txt"); string a; getline (out, a); getline (out, a); cout << a << endl; system("PAUSE"); return 0; } |
|
|
|
|
|
#14 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: novembre 2006
Messages: 22
|
En fait vu la complexité de la chose, je pense que le numéro de série logique me suffira.
Est ce que je suis obligé de passer par un fichier intermédiaire avec system("dir c:\"); ou est ce que je peux récupérer directement dans une variable la réponse de la commande ? Il y a peut être une autre solution avec GetVolumeInformation mais je sais pas comment faire. |
|
|
|
|
|
#15 (permalink) |
![]() Date d'inscription: mai 2007
Localisation: France
Messages: 2 066
|
Tiens, ca marche
Code :
#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 ... } } |
|
|
|
![]() |
![]() |
||
Numero de serie physique d'un disque dur
|
||
| Outils de la discussion | |
|
|