Nº de Serie de una Storage Card

Nº de Serie de una Storage Card

Postby jmartial » Wed Jul 19, 2006 6:51 pm

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
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Antonio Linares » Wed Jul 19, 2006 7:21 pm

Joaquín,

Es la primera noticia que tenemos de que las tarjetas SD tienen número de serie :)

Has probado a buscar en Google ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jmartial » Wed Jul 19, 2006 7:41 pm

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
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby Antonio Linares » Wed Jul 19, 2006 8:43 pm

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í:
Code: Select all  Expand view
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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jmartial » Wed Jul 19, 2006 9:28 pm

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
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm

Postby jmartial » Thu Jul 20, 2006 9:43 am

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
jmartial
 
Posts: 458
Joined: Tue Mar 14, 2006 7:26 pm


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 18 guests