Power Builder - Serie de disco Duro

 
Vista:

Serie de disco Duro

Publicado por LuzFacundo (19 intervenciones) el 22/02/2011 14:51:28
Por favor necesito obtener la serie del disco duro.

En este foro encontre la siguiente direccion pero no esta claro.
http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/komponenten/komponente0042.shtml

Gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Serie de disco Duro

Publicado por Luis (47 intervenciones) el 22/02/2011 15:40:29
Hola LuzFacundo,

Primero, entiendo que tu pregunta es sobre PowerBuilder (es que veo que la url empieza por vb, que son las siglas de Visual Basic)

El caso es que para tomar el número de serie de PowerBuilder, en este foro tienes ya contestada la pregunta, te hago copy & paste, para que no tengas que buscar:

-------------------------------------------------------------------------------------------------------------------------
Deberas declarar una External Local Function:

FUNCTION long VolSerialNum (string lpRootPathName, string pVolumeNameBuffer, long nVolumeNameSize, REF long lpVolumeSerialNumber, long lpMaximumComponentLength, long lpFileSystemFlags, string lpFileSystemNameBuffer, long nFileSystemNameSize) LIBRARY "kernel32.dll" ALIAS FOR "GetVolumeInformationA"

////Este es codigo que utilizaras:
long numSerie,longitud,flag
string unidad,cad1,cad2,ls_num_serie

unidad = "C:\"
numSerie = 0
VolSerialNum(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)
ls_num_serie = string(numSerie)
-------------------------------------------------------------------------------------------------------------------------

Si te has equivocado y es VB, mira esto:
http://www.tutores.org/?codigo=1068&Obtener-numero-de-serie-de-una-unidad

Espero te sirva.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Serie de disco Duro

Publicado por LuzFacundo (19 intervenciones) el 22/02/2011 23:31:32
Hola Luis.

La variable ls_num_serie devuelve el numero negativo -1472355280

Por favor, necesito tu ayuda.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Serie de disco Duro

Publicado por Luis (47 intervenciones) el 23/02/2011 11:18:57
Disculpa Luz,
He encontrado otra forma, a mí no me funciona, pero creo que es por lo capado de mi ordenador por estar en red, de hecho, he necesitado un programa especial para el número de serie, por que no me permitía hacer la consulta por msdos.
dime qué te devuelve, y si no es lo que busca, miraré una que a mí me funcione.

Prueba esto:

La siguiente llamada API obtiene el nombre de la unidad además de su número de serie.
Crea un objeto no visual (NVO) y añade la siguiente función externa local:
function long GetVolumeInformationA( ref string ls_RootPath, ref string ls_VolName, long ll_VolLen, ref string ls_volserial, long ll_maxcomplen, long ll_systemflags, ref string ls_SystemName,long ll_SystemLen ) Library 'kernel32'
Entonces añade la función GetVolumeName la cual acepta una cadena y retorna otra cadena. Pon el siguiente código:
// Call the API function to get the volume
// label from a drive letter
String ls_Volume
String ls_Drive, ls_FileSys, ls_Flags, ls_Serial
Long ll_Max, ll_Flags, ll_RC, ll_FileSys
Long ll_Volume
ls_Drive = as_Volume
ls_Volume = Space(32)
ls_FileSys = Space(32)
ls_Serial = Space(32)
ll_Volume = Len( ls_Volume )
ll_FileSys = Len( ls_Filesys )
ll_RC = GetVolumeInformationA( ls_Drive, ls_Volume, ll_Volume, &
ls_Serial, ll_Max, ll_Flags, ls_FileSys, ll_FileSys )
IF ll_RC = 0 THEN

ls_Volume = ''

ELSE

ls_Volume = Trim( ls_Volume )

END IF
RETURN ls_Volume
LLama a la función pasándole la letra de la unidad de la que quieras obtener información, por ejemplo: C:\
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Serie de disco Duro

Publicado por LuzFacundo (19 intervenciones) el 03/03/2011 22:05:34
Gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar