Как программно извлечь 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 сложнее.