Volume serial number
-
Hallo,
ich habe da eine kleine Frage. Ich brauche unbedingt die Volume serial number von meiner HD. Soweit so gut. Die habe ich auch, aber hier das Problem:
Wenn ich auf der DOS Commando Zeile "vol" oder "label" eintippe bekomme ich etwas wie xxxx-xxxx für meine serial number.
Aber wenn ich den System Call mit GetVolumeInformation die Serialnumber auslese dann bekomme ich etwas sehr langes wie 724183336 ...
Also etwas ganz anderes als mit "vol". Wie kann ich das richtig auslesen???
Bitte helft mir, denn es ist wichtig.
Ich danke Euch
Gruss
chris.
char RootPathName[256]="c:\\"; // address of name of root directory char VolumeNameBuffer[256]; // address of name of the volume DWORD VolumeSerialNumber; // address of volume serial number DWORD MaximumComponentLength; // address of system's maximum filename length DWORD FileSystemFlags; // address of file system flags char FileSystemNameBuffer[256]; // address of name of file system bool Res; UINT OldErrMode; OldErrMode=SetErrorMode(SEM_FAILCRITICALERRORS); /* LPCTSTR lpRootPathName, // address of root directory of the file system LPTSTR lpVolumeNameBuffer, // address of name of the volume DWORD nVolumeNameSize, // length of lpVolumeNameBuffer LPDWORD lpVolumeSerialNumber, // address of volume serial number LPDWORD lpMaximumComponentLength, // address of system's maximum filename length LPDWORD lpFileSystemFlags, // address of file system flags LPTSTR lpFileSystemNameBuffer, // address of name of file system DWORD nFileSystemNameSize // length of lpFileSystemNameBuffer */ Res=GetVolumeInformation(NULL,VolumeNameBuffer,255, &VolumeSerialNumber,&MaximumComponentLength, &FileSystemFlags,FileSystemNameBuffer,255 ); printf("SN: %lu\n",VolumeSerialNumber); printf("VN: %s\n",VolumeNameBuffer); printf("SN: %lu\n",FileSystemFlags);
-
Das eine ist die hexa-dezimale Darstellung und das andere die dezimale Darstellung der SN.
Gruß WoWe