Ir al contenido



Foto

Hacer un registro de las Copias a dispositivos USB


  • Por favor identifícate para responder
4 respuestas en este tema

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 718 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 octubre 2018 - 09:04

Hola a todos
Pues me pidieron hacer un software que monitorice todas las copias de archivos que se hagan a cualquier dispositivo USB, para tener el control de la cantidad de archivos que se copian diariamente y en cuantos dispositivos USB.

Este registro se guardara en una base de datos, donde necesita los siguientes datos:
- Nombre del Dispositivo
- Capacidad
- Fecha de insertado
- Lista de los archivos copiados
* Nombre del archivo
* Ruta desde donde se copio

Ya tengo como detectar cuando se inserta un dispositivo USB, y obtener su nombre, ruta y capacidad.
Tambien en el foro encontré como monitorizar "una ruta" para saber lo que se copia, borra, etc.

El problema lo tengo, en que no se como implementar el registro de copias cuando hay mas de un dispositivo insertado y copiandose cosas diferentes.

En el caso de que sea un solo dispositivo el que se inserta en un dia, no me parece complicado.
El problema esta cuando se inserta mas de uno a la vez, o el mismo varias veces en el dia, como enviar a la BD los archivos que se copian al dispositivo correcto.
Es decir, si el disp. se inserto varias veces, que cada copia sea la del momento en que se inserto, y si es a otro disp. como identificarlo en la BD si su nombre coincide con el de otro.


Me podrian dar alguna idea de como implementar esto?

Editado por JoAnCa, 29 octubre 2018 - 09:20 .

  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.180 mensajes
  • LocationArgentina

Escrito 29 octubre 2018 - 02:43

Cada USB tiene un ID, o Número de Serie. Debería poder obtenerse este dato y en base a ello determinar que/cuantos dispositivos se conectan.

Y respecto a la cantidad de veces en el día, pues, es la verdad es que no entiendo. Si ya tienes el algoritmo que detecta cuando se conecta. ¿Cuál es la diferencia entre que detecte 1 o N veces?

Ahora lo difícil es lograr detectar en un escenario en donde hay 2+ dispositivos conectados a cual se le está copiando un archivo. Desconozco si es posible esto.

 

En tu base de datos obviamente vas a guardar el histórico, por cada vez que detectas un pendrive. Y a su vez, por cada vez que detectas una copia de archivo.

 

Saludos,


  • 0

#3 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 718 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 octubre 2018 - 05:59

Cada USB tiene un ID, o Número de Serie. Debería poder obtenerse este dato y en base a ello determinar que/cuantos dispositivos se conectan.
Saludos,


Pues veré como detectar el ID del dispositivo, y basandome en ese numero y la hora de insertado, pienso que lo tendré identificado

Y respecto a la cantidad de veces en el día, pues, es la verdad es que no entiendo. Si ya tienes el algoritmo que detecta cuando se conecta. ¿Cuál es la diferencia entre que detecte 1 o N veces?


Pues la diferencia está en que me guarde el historico de forma separada, porque si el disposivo es de 8 GB por ejemplo, y copia una vez 6 GB y otra vez 5 GB, deben estar separado, si no me dira que se copiaron 11 GB en un disp. de 8, lo que no es correcto

En tu base de datos obviamente vas a guardar el histórico, por cada vez que detectas un pendrive. Y a su vez, por cada vez que detectas una copia de archivo.


Asi es, eso mismo es lo que pretendo

Editado por JoAnCa, 29 octubre 2018 - 06:11 .

  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.180 mensajes
  • LocationArgentina

Escrito 29 octubre 2018 - 07:01

Pues veré como detectar el ID del dispositivo, y basandome en ese numero y la hora de insertado, pienso que lo tendré identificado


Pues la diferencia está en que me guarde el historico de forma separada, porque si el disposivo es de 8 GB por ejemplo, y copia una vez 6 GB y otra vez 5 GB, deben estar separado, si no me dira que se copiaron 11 GB en un disp. de 8, lo que no es correcto


Asi es, eso mismo es lo que pretendo

 

La forma en como hagas el histórico y lo administres es otra cosa. Tu llevarás los controles que consideres necesarios, a lo que apunto es que "tal complicación" no existe. Si puedes identificarlo 1 vez, lo puedes hacer N veces.

Lo complicado no es detectarlo N veces. No es de algoritmia sino que se debe a una buena estructura en tu base de datos que te de el soporte que requieres.

 

Buscando sobre flash memory identification delphi los primeros resultados me llevan a estos enlaces:

Enlace 1

Enlace 2

Enlace 3

 

Recuerdo que el gran maestro Escafandra expuso una vez algo sobre el tema. Y que hay que tener en cuenta que parece que en Win32 no siempre es posible dar con la autenticación de un USB, o que pudiera obtenerse el mismo ID para el mismo dispositivo siempre. Algo por ahí recuerdo que iba la cosa. Haz una búsqueda en el foro.

 

Saludos,


  • 0

#5 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 718 mensajes
  • LocationPinar del Río, Cuba

Escrito 29 octubre 2018 - 09:53

Se me estaba ocurriendo usar un hilo por cada disp USB que se conecte, asi me parece que seria mas facil.
- Detecto el disp usb, creo el hilo y monitoreo las copias para esa unidad, almacenando en la BD el historial correspondiente
Que opinan?

En las PC suelen haber entre 4 y 6 puertos USB, y si usaran alguna extension de puertos podrian ser mas, pero no creo que se vayan a conectar a copiar 10 memorias a la vez.
Por lo tanto, quizas en algun momento habria que crear 10 hilos?
Seria mucha carga para la PC crear 10 hilos para monitorear las copias?


Pero con esto de los hilos me surge un nuevo problema, nunca he trabajado con hilos ... jejeje

Podrias encaminarme en esta trarea con hilos?

Editado por JoAnCa, 29 octubre 2018 - 09:55 .

  • 0