Seriennummer eines Laufwerks auslesen
-
hi
mit GetVolumeInformation kann man verschiedene Dinge von einem Volume auslesen (name, dateisystem und seriennummer).
GetVolumeInformation("D:\",rrr,bufsize,serialnumber,&cchBuff,&flags,uuu,bufsize);
serialnumber ist eine variable vom typ LPDWORD.
wie bekomm ich jetzt die seriennummer in einen char-array??danke für eure hilfe
-
itoa()
Aber mit Malloc vorher den Speicher anfordern...
-
Hab die Funktion noch nie benutzt, aber wie wäre es mit:
char buf[10]; DWORD nSerialnumber; // Ich habe es jetzt zur Vereinfachung so gemacht, dass nur die Serialnumber geholt wird. Weiss allerdings nicht ob das geht! GetVolumeInformation("D:\\", NULL, 0, &nSerialnumber, NULL, NULL, NULL, 0); sprintf_s(buf, 10, "%n", nSerialnumber);Dürfte eigentlich so gehen.
Grüssli
-
ich hab jetzt
_ultoa(serialnumber,uuu,16); //uuu ist der chararray
aber er meldet:
error C2664: '_ultoa' : Konvertierung des Parameters 1 von 'unsigned long *' in 'unsigned long' nicht moeglichwas soll ich tun?
-
void HDData(void) { DWORD lVolSerialNbr=0, lVolNameSize=0; char *sVolName; sVolName = (char *)malloc(1000+1); GetVolumeInformation( "C:\\", sVolName, 1000, &lVolSerialNbr, 0, 0, 0, 0); printf("%s und %d", sVolName, lVolSerialNbr); free(sVolName); }
-
void HDData(void) { DWORD lVolSerialNbr=0, lVolNameSize=0; char *sVolName, *sSerial=0; sVolName = (char *)malloc(1000+1); GetVolumeInformation( "C:\\", sVolName, 1000, &lVolSerialNbr, 0, 0, 0, 0); sSerial = (char *)malloc(20); ultoa(lVolSerialNbr, sSerial, 10); printf("%s und %s", sVolName, sSerial); free(sSerial); free(sVolName); }Nimm lieber ultoa(), die Serial ist ein DWORD...
-
danke, läuft wunderbar
