Antonio,
¿ Existe alguna manera de saber el numero interno de serie que el fabricante de una tarjeta de memoria SD, CF, etc. Le ha puesto al fabricarla?
Suelen servir para las garantías, por lo que son únicos (en teoría)
Un Saludo,
Joaquín
Nº de Serie de una Storage Card
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
Puedes probar esto?
h:=Fopen(curdir()+"\UnFileCualquieraenLaTarjeta")
msginfo( str(NumserieTarjeta(h)) )
Fclose(h)
-------------------------------------
HB_FUNC( NUMSERIETARJETA )
{
BY_HANDLE_FILE_INFORMATION bHinfo;
memset( &bHinfo, 0 , sizeof(bHinfo) );
GetFileInformationByHandle( (HANDLE) hb_parnl(1), &bHinfo );
hb_retnl( bHinfo.dwVolumeSerialNumber );
}
Un Saludo,
Joaquín
Puedes probar esto?
h:=Fopen(curdir()+"\UnFileCualquieraenLaTarjeta")
msginfo( str(NumserieTarjeta(h)) )
Fclose(h)
-------------------------------------
HB_FUNC( NUMSERIETARJETA )
{
BY_HANDLE_FILE_INFORMATION bHinfo;
memset( &bHinfo, 0 , sizeof(bHinfo) );
GetFileInformationByHandle( (HANDLE) hb_parnl(1), &bHinfo );
hb_retnl( bHinfo.dwVolumeSerialNumber );
}
Un Saludo,
Joaquín
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Joaquín,
En la Pocket PC real aparece esto: 1068166675
Joaquín, por favor, acostúmbrate a proporcionar ejemplos completos, con lo que se agiliza mucho el soporte técnico, Gracias. Así:
En la Pocket PC real aparece esto: 1068166675
Joaquín, por favor, acostúmbrate a proporcionar ejemplos completos, con lo que se agiliza mucho el soporte técnico, Gracias. Así:
Code: Select all
function Main()
local h:=Fopen(curdir()+"\test.txt")
msginfo( str(NumserieTarjeta(h)) )
Fclose(h)
return nil
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
HB_FUNC( NUMSERIETARJETA )
{
BY_HANDLE_FILE_INFORMATION bHinfo;
memset( &bHinfo, 0 , sizeof(bHinfo) );
GetFileInformationByHandle( (HANDLE) hb_parnl(1), &bHinfo );
hb_retnl( bHinfo.dwVolumeSerialNumber );
}
#pragma ENDDUMP
Antonio,
Perdona por ejemplo incompleto, es que llevo toda la tarde amargado con este tema, intentaré hacerlo bien la próxima vez.
Resulta que probando ese mismo ejemplo en el PC el nº debería ser el mismo (introduciendo la tarjeta en un lector de tarjetas para PC) , pero me ocurre lo siguiente.
Si me devuelve un nº positivo, en el pc y en la pocket son el mismo, pero si es una tarjeta con un nº más largo, en el PC sale positivo bien, y en la pocket siempre me devuelve el -63947351. Usando diferentes tarjetas, con lo que deduzco que el valor de la pocket lo da incorrecto porque no quepa el valor en la estructura o algo parecido.
Se te ocurre que pude pasar? O como puedo hacer que en el miembro dwVolumeSerialNumber de la estructura quepa un valor mayor ?
El problema es que en pc siempre sale bien y en la pocket a veces devuelve ese nº porque no cabe o hay que convertirlo.
Por favor te pido, si pudieras echarme una mano en este aspecto.
Gracias por tu tiempo,
Joaquín
Perdona por ejemplo incompleto, es que llevo toda la tarde amargado con este tema, intentaré hacerlo bien la próxima vez.
Resulta que probando ese mismo ejemplo en el PC el nº debería ser el mismo (introduciendo la tarjeta en un lector de tarjetas para PC) , pero me ocurre lo siguiente.
Si me devuelve un nº positivo, en el pc y en la pocket son el mismo, pero si es una tarjeta con un nº más largo, en el PC sale positivo bien, y en la pocket siempre me devuelve el -63947351. Usando diferentes tarjetas, con lo que deduzco que el valor de la pocket lo da incorrecto porque no quepa el valor en la estructura o algo parecido.
Se te ocurre que pude pasar? O como puedo hacer que en el miembro dwVolumeSerialNumber de la estructura quepa un valor mayor ?
El problema es que en pc siempre sale bien y en la pocket a veces devuelve ese nº porque no cabe o hay que convertirlo.
Por favor te pido, si pudieras echarme una mano en este aspecto.
Gracias por tu tiempo,
Joaquín
Antonio,
Olvidaté del problema, al final toda la historia estaba en que existe un buffer de todos los medios extraibles, tanto en PC como en pocket.
Y Si estás insertando en el PC, copias algo, sacas, lo insertas en la pocket y así un montón de veces, incluso llegan a corromperse los datos de la tarjeta, aparte a que no das tiempo al sistema de hacer un volvado de los buffers al medio extraíble.
Un Saludo y Gracias,
Joaquín
Olvidaté del problema, al final toda la historia estaba en que existe un buffer de todos los medios extraibles, tanto en PC como en pocket.
Y Si estás insertando en el PC, copias algo, sacas, lo insertas en la pocket y así un montón de veces, incluso llegan a corromperse los datos de la tarjeta, aparte a que no das tiempo al sistema de hacer un volvado de los buffers al medio extraíble.
Un Saludo y Gracias,
Joaquín