Pregunta

¿Cómo quito una unidad USB usando la API de Win32?Trabajo mucho en sistemas integrados y en uno de ellos tengo que copiar mis programas en una memoria USB e insertarla en el hardware de destino.

Como trabajo principalmente en la consola, no me gusta usar el mouse y hacer clic en el pequeño ícono de la barra de tareas cientos de veces al día.

Me encantaría escribir un pequeño programa para hacer exactamente eso y poder ponerlo en mis archivos MAKE, pero no he encontrado ninguna llamada API que haga lo mismo.

¿Algunas ideas?

¿Fue útil?

Solución

Puede utilizar la función CM_Request_Device_Eject() así como algunas otras posibilidades.Consulta los siguientes proyectos y artículos:

DevEject:Directo.http://www.withopf.com/tools/deveject/

Un artículo útil de CodeProject:http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

Otros consejos

Parece que Sincronizar le permite especificar -e para expulsar unidades extraíbles.Si bien no es una API win32, probablemente podrías simplemente llamar sync -e [drive_letter] desde su archivo MAKE.

Aquí hay un artículo técnico sobre medios de almacenamiento extraíbles.Buscar DismountNtmsMedia.

Aquí hay una solución en Delphi, que modifiqué y puse en un servicio para usar en una empresa muy grande.Ir a: Texto del enlace

Busque "scapi (API del administrador de configuración y configuración)" y descárguelo.Habrá un programa de demostración llamado USBView que le ayudará a seguir su camino.Si tiene Delphi, esto también incluye un componente TUSBDeviceTree que puede usar para recopilar información sobre un dispositivo USB cuando.

Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top