Как программно извлечь USB-накопитель?

Как программно извлечь (безопасно удалить) USB-накопитель в Windows (XP)?

5 ответов

Решение

Об этом есть статья в CodeProject: http://www.codeproject.com/KB/system/usbeject.aspx

Кажется, чтобы сделать трюк.

/ Johan/

Сначала загрузите код с http://www.codeproject.com/Articles/13530/Eject-USB-disks-using-C

Затем импортируйте классы папки "Библиотека" в ваш проект

И вставьте этот код в свою кнопку.

private void btnExpulsar_Click(object sender, RoutedEventArgs e)
        {
            //Expulsa todas las unidades
            VolumeDeviceClass volumeDeviceClass = new VolumeDeviceClass();  //Enlista las unidades
            foreach (var item in volumeDeviceClass.Devices.ToList())
            {
                if (item.IsUsb)//Verifica que sean unidades USB
                {
                    item.Eject(true); //Expulsa las unidades
                }
            }
        }   

Вот проект (с исходным кодом), который, кажется, понял это.

В autoit у вас есть скрипт, который делает именно это.

Это в основном происходит из этой статьи Microsoft и использует функцию DeviceIoControl kernel32.dll

Конечно, этот вопрос кажется дубликатом Safe remove USB-Drive с использованием Win32 API?, что дает другие решения

Вы можете запустить процесс и использовать инструмент командной строки. Это также будет работать с другими языками, такими как Java, где вызов API Win32 сложнее.

Другие вопросы по тегам