如何以编程方式弹出USB大容量存储设备?

时间:2008-10-15 20:17:42

标签: winapi

如何以编程方式在Windows(XP)中弹出(安全删除)USB大容量存储设备?

5 个答案:

答案 0 :(得分:2)

Here是一个项目(带有源代码)似乎已经弄明白了。

答案 1 :(得分:2)

CodeProject上有一篇关于它的文章:http://www.codeproject.com/KB/system/usbeject.aspx

似乎可以做到这一点。

/约翰/

答案 2 :(得分:2)

autoit中,你有script就可以了。

它基本上来自这个Microsoft article并使用kernel32.dll DeviceIoControl函数

当然,这个问题似乎与Safe remove USB-Drive using Win32 API?重复,后者提供了其他解决方案

答案 3 :(得分:2)

首先从http://www.codeproject.com/Articles/13530/Eject-USB-disks-using-C下载代码

然后将文件夹“Library”的类导入项目

将此代码放入点击按钮。

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
                }
            }
        }   

答案 4 :(得分:1)

您可以生成一个进程并使用command line tool。这也适用于其他语言,例如java,其中调用Win32 api更难。