Autor Tema: [RESUELTO] Problema al conectar y desconectar memoria USB  (Leído 1030 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado monchito_elroro

  • Usuario Activo
  • ***
  • Gracias
  • -Dados: 1
  • -Recibidos: 4
  • Mensajes: 106
  • Calificaciones: +4/-0
Re: Problema al conectar y desconectar memoria USB
« Respuesta #20 en: 19 de Febrero de 2012, 18:41:09 »
Gracias amigo, pero mas o menos que es lo que tendrìa que hacer con ese còdigo:

Código DELPHI
  1. ListBox1.Items.Add(GetDriveName(Letra + ':\'));


Pues este lo utilizo para que me muestre la unidad + su LABEL (con la manera que usted me sugirió)




Desconectado escafandra

  • Moderadores
  • ******
  • Gracias
  • -Dados: 83
  • -Recibidos: 565
  • Mensajes: 2,131
  • Calificaciones: +604/-0
  • Sexo: Masculino
Re: Re: Problema al conectar y desconectar memoria USB
« Respuesta #21 en: 19 de Febrero de 2012, 19:24:18 »
Funciona todo muy bien..... solo que sigue sin actualizarse el label cuando le cambio de nombre
a la unidad X:\
Esto no lo entiendo. El código, tal como está detecta la inserción y desinserción de un disco USB, además no da la letra de unidad sino el nombre que le asigna Windows además de la letra.  GetDriveName devuelve el nombre que le da Windows a una unidad mas su letra.

¿Que es que no se actualiza el label?. ¿Cuando, en que momento no se actualiza? ¿Le cambias a mano el nombre de unidad?.

Si cambias el nombre, no esperes que se actualice hasta que no provoques la llamada a CrearLista.

En definitiva no se exactamente a lo que te refieres.


Saludos.

Desconectado monchito_elroro

  • Usuario Activo
  • ***
  • Gracias
  • -Dados: 1
  • -Recibidos: 4
  • Mensajes: 106
  • Calificaciones: +4/-0
Re: Problema al conectar y desconectar memoria USB
« Respuesta #22 en: 21 de Febrero de 2012, 12:51:13 »
Buenas, me disculpo ante todo si no di màs detalles, lo que pasa es que con LABEL me refiero al nombre de etiqueta de las Unidades Removibles, como les decìa todo funciona muy bien pero la incognita que tengo es que cuando abro el programita detecta todo bien .... ahora si manualmente cambio su Etiqueta en el explorador de windows entonces el nuevo nombre no se actualiza en el programita, a menos que lo cierre y lo vuelve a abrir...

Este era mi incognita...... perdonèn si les incomodo....

Desconectado escafandra

  • Moderadores
  • ******
  • Gracias
  • -Dados: 83
  • -Recibidos: 565
  • Mensajes: 2,131
  • Calificaciones: +604/-0
  • Sexo: Masculino
Re: Problema al conectar y desconectar memoria USB
« Respuesta #23 en: 21 de Febrero de 2012, 16:53:20 »
monchito_elroro no incomodas, tranquilo. El problema está en que si to te explicas de forma clara no se entiende la duda y es imposible responder adecuadamente.

Bien ahora entiendo que lo que haces es cambiar la etiqueta de volumen a tu unidad y que ses cambio no se actualiza.

Con el sistema que has elegido para detectar la inserción de unidad, el cambio en su etiqueta de volumen desde el explorador no va ha ser comunicado por el mensaje WM_DEVICECHANGE y por lo tanto no lo puedes manejar.

Con el sistema que te propuse en un principio para monitorizar el Shell, si puedes detectarlo, simplemente como un cambio de nombre de carpeta SHCNE_RENAMEFOLDER.

Ahora depende de tu necesidad de detectar el cambio de etiqueta de volumen para cambiar toda tu implementación a monitor de shell, monitorizar sólo cambios de nombre o no hacer nada mas.

Una solución de compromiso, para no cambiar todo el código es registrar sólo el mensaje SHCNE_RENAMEFOLDER, pero personalmente me parece un poco chapuza.

No he experimentado con Lazarus para monitorizar el Shell. Muy posiblemente esos mensajes no los reciba Lazarus y se tengan que trampear con un subclassing, pero como eso ya lo tienes implementado, no es difícil.


Saludos.

Desconectado monchito_elroro

  • Usuario Activo
  • ***
  • Gracias
  • -Dados: 1
  • -Recibidos: 4
  • Mensajes: 106
  • Calificaciones: +4/-0
Re: Problema al conectar y desconectar memoria USB
« Respuesta #24 en: 21 de Febrero de 2012, 20:18:40 »
Gracias amigo escafranda por la comprensiòn..... eso de detectar la modificaciòn de la etiqueta con el shellmonitor ya lo verè......

mas bien como ultima pregunta: ¿como podrìa hacer para que el resultado de su truco para saber la etiqueta se lea al revez, ejemplo:

en su ejemplo usando la "function GetDriveName" el resultado se leerìa "SISTEMA (C:)" ahora como podrìa hacer para el resultado se lea como "(C:)SISTEMA"

En su ejemplo de llamada usted puso:

Código DELPHI
  1. Label1.Caption:= GetDriveName('C:\');


he intentando poniendolo mas o menos asì:

Código DELPHI
  1. Label1.Caption:= ('C:\')+GetDriveName;

pero me sale error....


 :)




Desconectado escafandra

  • Moderadores
  • ******
  • Gracias
  • -Dados: 83
  • -Recibidos: 565
  • Mensajes: 2,131
  • Calificaciones: +604/-0
  • Sexo: Masculino
Re: Problema al conectar y desconectar memoria USB
« Respuesta #25 en: 22 de Febrero de 2012, 06:37:45 »
Código DELPHI
  1. function ReveseDrive(S: String): String;
  2. begin
  3.   Result:= Copy(S, pos('(', S), length(S))+ ' ' + Copy(S, 0, pos('(', S)-1);
  4. end;
  5.  


Saludos.

Desconectado monchito_elroro

  • Usuario Activo
  • ***
  • Gracias
  • -Dados: 1
  • -Recibidos: 4
  • Mensajes: 106
  • Calificaciones: +4/-0
Re: Problema al conectar y desconectar memoria USB
« Respuesta #26 en: 22 de Febrero de 2012, 12:48:56 »
Gracias escafandra por la ayuda.... creo que este serà el final del post..... cualquier otra consulta les estarè comunicando....... gracias amigos... :) :)

Desconectado Fenareth

  • Administrador
  • ******
  • Gracias
  • -Dados: 31
  • -Recibidos: 92
  • Mensajes: 2,307
  • Calificaciones: +115/-0
  • Sexo: Femenino
  • Dulce corderito entre lobos
Re: Problema al conectar y desconectar memoria USB
« Respuesta #27 en: 22 de Febrero de 2012, 12:52:11 »
Gracias escafandra por la ayuda.... creo que este serà el final del post..... cualquier otra consulta les estarè comunicando....... gracias amigos... :) :)

Colocamos el tema como RESUELTO amigo ???

Saludox ! :)
Tu corazón late a la izquierda y el mío late junto al tuyo...

Desconectado monchito_elroro

  • Usuario Activo
  • ***
  • Gracias
  • -Dados: 1
  • -Recibidos: 4
  • Mensajes: 106
  • Calificaciones: +4/-0
Re: Problema al conectar y desconectar memoria USB
« Respuesta #28 en: 22 de Febrero de 2012, 18:17:26 »
Upss..... disculpas  ....  :cheesy:

Desconectado escafandra

  • Moderadores
  • ******
  • Gracias
  • -Dados: 83
  • -Recibidos: 565
  • Mensajes: 2,131
  • Calificaciones: +604/-0
  • Sexo: Masculino
Re: Problema al conectar y desconectar memoria USB
« Respuesta #29 en: 23 de Febrero de 2012, 01:19:13 »
Me gustaría añadir al tema una solución de compromiso al problema de que no se actualice la etiqueta de volumen recientemente cambiada en una unidad USB. Dado que en un principio monchito_elroro no quiere monitorizar el Shell, le propongo lo que le insinué aquí:
Si cambias el nombre, no esperes que se actualice hasta que no provoques la llamada a CrearLista.

Es decir y concretando la propuesta, en un evento como OnActivate o en OnShow, por ejemplo, puedes forzar una llamada a CrearLista. Con esto leerás tudas las unidades conectadas y se actualizarán sus nombres.


Saludos.