![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
La función GetDriveType me retorna DRIVE_REMOVABLE tanto si la tarjeta está montada como si no.
De hecho si miras el ejemplo que puse al iniciar el hilo verás que eso es exactamente lo que estoy comprobando para distingir la tarjeta del resto de unidades.
Por cierto, he probado y sí, DirectoryExists tambien hace saltar la puñetera excepción de "Inserte un disco" De todas formas se agradece la ayuda DEC. Quizás la solución pase por el componente que posteaste hace un rato y que me notifique la inserción de la tarjeta pero me estoy debanando los sesos para tratar de compilar el Package por que me da un error de una clase no definida. |
|
#2
|
||||
|
||||
|
De todas formas, es que estoy seguro que debe haber alguna función en el API de windows que me diga si la unidad extraible tiene un medio insertado o no. Pero por más que busco no encuentro nada.
|
|
#3
|
||||
|
||||
|
Hola,
No me refería yo tanto a la función "GetDriveType" con esto último que he dicho, sino a obtener la lista de unidades disponibles, por ejemplo, con un código similar a este. De este modo, antes de comprobar que un archivo o directorio exista (con lo que nos exponemos al error que comentas), digo, podremos comprobar que existe realmente la unidad en cuestión. Es decir, tú obtienes una lista como: Código:
C:\ D:\ E:\ |
|
#4
|
|||
|
|||
|
Hola.
Prueba con este código.
SetErrorMode MSDN |
|
#5
|
||||
|
||||
|
champy,
Revisa este código: El código anterior busca en todos los medios activos y de tipo removible un archivo determinado hasta hallar la primera ocurrencia o finalizar los drivers activos, fue probado con medios USB y Tarjetas MicroSD vía USB y funciona correctamente. Espero sea útil ![]() Nelson. Última edición por nlsgarcia fecha: 09-12-2012 a las 22:19:59. |
|
#6
|
||||
|
||||
|
Acabo de aterrizar en casa y voy a probarlo ahora mismo. En un ratito cuento algo. Gracias por el aporte
|
|
#7
|
||||
|
||||
|
No hay forma.
Con la comprobación de DEC, la unidad "E:\" en mi caso, aparece como disponible aunque el medio no esté presente. y con los ejemplos de Beginner y nlsgarcia sigo obteniendo la maldita excepcion. He encontrado una forma de averiguar si la unidad está o no montada sin obtener el mensaje de error, aunque me parece bastante cutre y no se muy bien como aplicarla.
Si la unidad está montada, el dir hace lo debido. Pero si no está presente o montada la tarjeta retorna el mensaje : El dispositivo no está listo Si pudiese recuperar ese mensaje de salida del DIR para comprobarlo, aunque sea una solución cutre.... al menos tendría una solución temporal hasta encontrar algo mejor. ¿Alguna sujerencia? He intentado hacer un "Dir e:\ >> rutadeunfichero.txt" para guardar la salida en texto y luego poder cargarla desde la aplicación pero por lo visto en el msdos de Vista-7 está opción no sirve, se me están acabando las ideas. |
|
#8
|
||||
|
||||
|
Cita:
Una vez pongo el teléfono en modo "unidad de disco" la tarjeta se monta y todo va bien, pero para ese momento ya ha saltado la excepcion como 1 millon de veces. De todos modos se agradece el aporte ![]() |
|
#9
|
|||
|
|||
|
Hola.
Revisaste el enlace que te dejé? hay varios "flags" que se le pueden pasar a la función según el tipo de error que tengas. En mi caso funciono con SEM_FAILCRITICALERRORS pero en tu caso puedes probar con las demás o leer la explicación que dan a ver si te sirve. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| como detecto unidades extraibles | desi | Internet | 2 | 12-12-2007 16:57:41 |
| De los reproductores de medios | AzidRain | La Taberna | 1 | 02-08-2007 19:16:55 |
| Detectar Excepcion EconvertError | MasterXP | Conexión con bases de datos | 6 | 30-03-2005 07:42:55 |
| Toshiba pela al jugador de medios de Windows | roman | Humor | 1 | 28-03-2005 23:22:02 |
| No puedo detectar la excepción "EDatabaseError" | Adan | Conexión con bases de datos | 8 | 21-03-2005 21:07:24 |
|