2008-09-17 13 views
29

¿Cómo elimino una unidad USB con la API de Win32? Trabajo mucho en sistemas integrados y en uno de ellos tengo que copiar mis programas en una memoria USB e insertarlos en el hardware de destino.¿Quitar con seguridad una unidad USB con la API de Win32?

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

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

¿Alguna idea?

Respuesta

17

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

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

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

+0

Perfecto ... Incluso se ha vinculado a una utilidad para hacer el trabajo. Muchas gracias. –

+0

MSDN reference @ http://msdn.microsoft.com/en-us/library/ms790831.aspx – stephbu

4

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

+0

¿Pero cómo saber qué letra de unidad se ha agregado para la unidad USB? También quiero eliminar unidades USB basadas en volúmenes como No permitir volumen de USB de más de 5GG, etc. –

2

Aquí está una technet article sobre medios de almacenamiento extraíbles. Busque DismountNtmsMedia.

0

Aquí hay una solución en Delphi, que he modificado y puesto en un servicio para su uso en una empresa muy grande. Vaya a: link text

Busque "scapi (Setup & Config Manager API)", y descárguelo. Habrá un programa de demostración llamado USBView que lo pondrá en camino. Si tiene Delphi, esto también incluye un componente TUSBDeviceTree que puede usar para recopilar información sobre un dispositivo USB cuando.

Saludos

Cuestiones relacionadas