numero de serie del HD

21/05/2004 - 09:48 por Mateu Perelló | Informe spam
Hola grupo ,a ver si me podeis decir donde me equivoco, ya que el resultado
obtenido no es el deseado ,o el que desearia obtener ,explico:
quiero obtener el numero de serie de un HD y lo hago asi
LPCTSTR lpRootPathName; //direccion de la unidad

LPTSTR lpVolumeNameBuffer=new char[12]; //bufer donde pondra el nombre de la
unidad

DWORD nVolumeNameSize; // longitut del bufer

DWORD VolumeSerialNumber; // donde pondra el numero de serie

DWORD MaximumComponentLength; // address of system's maximum filename length

DWORD FileSystemFlags; // address of file system flags

LPTSTR lpFileSystemNameBuffer=new char[10]; // address of name of file
system

DWORD nFileSystemNameSize; // length of lpFileSystemNameBuffer

lpRootPathName="C";

GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,
nVolumeNameSize,&VolumeSerialNumber,&MaximumComponentLength,

&FileSystemFlags,lpFileSystemNameBuffer, nFileSystemNameSize);

CString szTmp;

szTmp.Format(" nom %s serie %x,",lpVolumeNameBuffer,&VolumeSerialNumber);

MessageBox(NULL,szTmp,NULL,MB_OK);



y en el mensage no me da el mismo numero que me da cuando hago un DIR o un
LABEL en modo consola



me podeis ayudar??





Atentamente

Mateu Perelló
 

Leer las respuestas

#1 Isidro Muñoz
21/05/2004 - 12:24 | Informe spam
Hola,

LPTSTR lpVolumeNameBuffer=new char[12]; //bufer donde pondra el nombre de


la
LPTSTR lpFileSystemNameBuffer=new char[10]; // address of name of file
szTmp.Format(" nom %s serie %x,",lpVolumeNameBuffer,&VolumeSerialNumber);



Si compilas con UNICODE tendrias que poner new tchar en lugar de new char

CString no lo he usado nunca pero si Format hace lo mismo que sprintf me
imagino que tendras que poner
szTmp.Format(" nom %s serie %x,",lpVolumeNameBuffer, VolumeSerialNumber);

Estas haciendo la indireccion de VolumeSerialNumber.

Saludos.
Isidro.

Preguntas similares