In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
HDSerial
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
Revisando algunos foros encontre esta funcion de como leer la serie de disco
duro, esta en FW y C, y C no es mi fuerte que digamos, y aun lo estoy
analizando para adaptarlo.
Lo anexo si alguien tiene conocimientos avanzados y nos apoya a muchos.
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Attached files Hdserial.c (1.7 KB)Â HDSerial.prg (506 B)Â
duro, esta en FW y C, y C no es mi fuerte que digamos, y aun lo estoy
analizando para adaptarlo.
Lo anexo si alguien tiene conocimientos avanzados y nos apoya a muchos.
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Attached files Hdserial.c (1.7 KB)Â HDSerial.prg (506 B)Â
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
HDSerial
Ramón,
> Revisando algunos foros encontre esta funcion de como leer la serie de
> disco duro, esta en FW y C, y C no es mi fuerte que digamos, y aun lo
> estoy analizando para adaptarlo.
>
> Lo anexo si alguien tiene conocimientos avanzados y nos apoya a muchos.
Es mucho más sencilo así:
//---------------------------------------------------------- ----------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( GETVOLUMESERIAL )
{
DWORD nSerial = 0;
GetVolumeInformation( hb_parc( 1 ), NULL, 0, &nSerial, NULL, NULL,
NULL, 0 );
hb_retnl( nSerial );
}
#pragma ENDDUMP
//---------------------------------------------------------- ----------------
Y la llamas así:
MsgInfo( GetVolumeSerial( "C:" ) )
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Revisando algunos foros encontre esta funcion de como leer la serie de
> disco duro, esta en FW y C, y C no es mi fuerte que digamos, y aun lo
> estoy analizando para adaptarlo.
>
> Lo anexo si alguien tiene conocimientos avanzados y nos apoya a muchos.
Es mucho más sencilo así:
//---------------------------------------------------------- ----------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
XA_FUNC( GETVOLUMESERIAL )
{
DWORD nSerial = 0;
GetVolumeInformation( hb_parc( 1 ), NULL, 0, &nSerial, NULL, NULL,
NULL, 0 );
hb_retnl( nSerial );
}
#pragma ENDDUMP
//---------------------------------------------------------- ----------------
Y la llamas así:
MsgInfo( GetVolumeSerial( "C:" ) )
--
Un saludo,
José F. Giménez
http://www.xailer.com
HDSerial
Ramón,
> que estoy haciendo mal?
hazlo así: L2Hex( vol )
Saludos,
José Lalín
> que estoy haciendo mal?
hazlo así: L2Hex( vol )
Saludos,
José Lalín
HDSerial
Ramón,
> perfecto pero.... el hextoString() aun me devuelve ",,{--"
> ya que requiero el valor en Decimal.
La respuesta está en tu pregunta. La función te está devolviendo el
valor en decimal (un LONG) y estás intentando pasarlo a HexToString como
si fuera hexadecimal.
Si usas HexToString( L2Hex( vol ) ), también debe funcionar correctamente.
Saludos,
José Lalín
> perfecto pero.... el hextoString() aun me devuelve ",,{--"
> ya que requiero el valor en Decimal.
La respuesta está en tu pregunta. La función te está devolviendo el
valor en decimal (un LONG) y estás intentando pasarlo a HexToString como
si fuera hexadecimal.
Si usas HexToString( L2Hex( vol ) ), también debe funcionar correctamente.
Saludos,
José Lalín
HDSerial
Ramón,
Con L2Hex( nSerial ) ya tienes el número de serie en formato
hexadecimal. No entiendo que más quieres hacer.
Saludos,
José Lalín
Con L2Hex( nSerial ) ya tienes el número de serie en formato
hexadecimal. No entiendo que más quieres hacer.
Saludos,
José Lalín
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
Gracias, lo voy a probar.
Aun estoy en la busqueda de como leer el #serie de la tarjeta principal.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Aun estoy en la busqueda de como leer el #serie de la tarjeta principal.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
La funcion regresa un valor de -2077315717-
y tengo vol=842EAD7B lo que corresponde a 2217651579
si uso HextoString("842EAD7B") me da: ",,{--"
que estoy haciendo mal?
Gracias de nuevo.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
y tengo vol=842EAD7B lo que corresponde a 2217651579
si uso HextoString("842EAD7B") me da: ",,{--"
que estoy haciendo mal?
Gracias de nuevo.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
perfecto pero.... el hextoString() aun me devuelve ",,{--"
ya que requiero el valor en Decimal.
Gracias
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
ya que requiero el valor en Decimal.
Gracias
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
se me olvidaba, si asi lo hago,
cVol := L2Hex(cHDSerial)
cVolSelrial := HextToString(cVol) //regresa ",,{---"
Aun sigo buscando como hacerlo.
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
cVol := L2Hex(cHDSerial)
cVolSelrial := HextToString(cVol) //regresa ",,{---"
Aun sigo buscando como hacerlo.
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
HDSerial
José,
Funciona PERFECTO!!!
MsgInfo( L2Hex( GetVolumeSerial( "C:" ) ) )
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> ha escrit al missatge del grup de
discussió: [email=44a6d8cd@news.xailer.com...]44a6d8cd@news.xailer.com...[/email]
>
> Ramón,
>
> Con L2Hex( nSerial ) ya tienes el número de serie en formato hexadecimal.
> No entiendo que más quieres hacer.
>
> Saludos,
> José Lalín
Funciona PERFECTO!!!
MsgInfo( L2Hex( GetVolumeSerial( "C:" ) ) )
Un Saludo,
Xevi.
"José Lalín" <dezac@corevia.com> ha escrit al missatge del grup de
discussió: [email=44a6d8cd@news.xailer.com...]44a6d8cd@news.xailer.com...[/email]
>
> Ramón,
>
> Con L2Hex( nSerial ) ya tienes el número de serie en formato hexadecimal.
> No entiendo que más quieres hacer.
>
> Saludos,
> José Lalín
HDSerial
Xevi,
> Funciona PERFECTO!!!
¡ Claro ! Lo que no entiendo aún es a dónde quiere llegar Ramón con
HexToStr( GetVolumeSerial() ).
Saludos,
José Lalín
> Funciona PERFECTO!!!
¡ Claro ! Lo que no entiendo aún es a dónde quiere llegar Ramón con
HexToStr( GetVolumeSerial() ).
Saludos,
José Lalín
HDSerial
Ramón,
vamos por partes.
La función GetVolumeSerial() devuelve el valor en decimal y la función
HexToDec() convierte un valor hexadecimal en decimal. Luego no tiene
sentido que hagas un HexToDec() del número de serie porque ya está en
decimal.
Saludos,
José Lalín
vamos por partes.
La función GetVolumeSerial() devuelve el valor en decimal y la función
HexToDec() convierte un valor hexadecimal en decimal. Luego no tiene
sentido que hagas un HexToDec() del número de serie porque ya está en
decimal.
Saludos,
José Lalín
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
El asunto es que requiero el valor del volumen en Decimal, en Hexadecimal no
me sirve, si lees bien el mensaje, te remarco que no funciona bien el
HextoDec, la funcion que posteaste funciona excelente.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
me sirve, si lees bien el mensaje, te remarco que no funciona bien el
HextoDec, la funcion que posteaste funciona excelente.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
HDSerial
en decimal?
creo que me confundo, -2077315717- es un numero decimal, pero por que es negativo?, y el ultimo guión me aparece como un simbolo _ pero en alto, pAra que mejor me entiendas anexo la imagen.
El valor que obtengo del volumen usando procesos DOS es: 2217651579,
por eso mi duda, por que si el resultado desde el inicio es decimal, por que no se parece al que obtengo desde otra aplicacion que ya he usado por años?
Gracias por su tiempo.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
creo que me confundo, -2077315717- es un numero decimal, pero por que es negativo?, y el ultimo guión me aparece como un simbolo _ pero en alto, pAra que mejor me entiendas anexo la imagen.
El valor que obtengo del volumen usando procesos DOS es: 2217651579,
por eso mi duda, por que si el resultado desde el inicio es decimal, por que no se parece al que obtengo desde otra aplicacion que ya he usado por años?
Gracias por su tiempo.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
HDSerial
Ramón,
en decimal?
creo que me confundo, -2077315717- es un numero decimal, pero por que es negativo?, y el ultimo guión me aparece como un simbolo _ pero en alto, pAra que mejor me entiendas anexo la imagen.
El valor que obtengo del volumen usando procesos DOS es: 2217651579,
por eso mi duda, por que si el resultado desde el inicio es decimal, por que no se parece al que obtengo desde otra aplicacion que ya he usado por años?
Ambos valores son idénticos... teniendo en cuenta que son enteros de 32 bits, el primero con signo y el segundo sin signo. Haz la siguiente operación: 2^32 - 2077315717 y verás que obtienes el valor que tú esperas. Esto es simplemente la consecuencia de cómo maneja los números enteros el microprocesador. Es más, si conviertes a hexadecimal ambos valores con L2Hex() verás que obtienes exactamente el mismo resultado.
Ahora bien, si quieres que te devuelva un entero positivo, sólo hay que hacer que te devuelva un entero de 64 bits en vez de uno de 32 bits. Cambia la línea:
hb_retnl( nSerial );
por:
hb_retnll( nSerial );
y ya está
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
en decimal?
creo que me confundo, -2077315717- es un numero decimal, pero por que es negativo?, y el ultimo guión me aparece como un simbolo _ pero en alto, pAra que mejor me entiendas anexo la imagen.
El valor que obtengo del volumen usando procesos DOS es: 2217651579,
por eso mi duda, por que si el resultado desde el inicio es decimal, por que no se parece al que obtengo desde otra aplicacion que ya he usado por años?
Ambos valores son idénticos... teniendo en cuenta que son enteros de 32 bits, el primero con signo y el segundo sin signo. Haz la siguiente operación: 2^32 - 2077315717 y verás que obtienes el valor que tú esperas. Esto es simplemente la consecuencia de cómo maneja los números enteros el microprocesador. Es más, si conviertes a hexadecimal ambos valores con L2Hex() verás que obtienes exactamente el mismo resultado.
Ahora bien, si quieres que te devuelva un entero positivo, sólo hay que hacer que te devuelva un entero de 64 bits en vez de uno de 32 bits. Cambia la línea:
hb_retnl( nSerial );
por:
hb_retnll( nSerial );
y ya está

--
Un saludo,
José F. Giménez
http://www.xailer.com
--