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

Winapi 如何以编程方式弹出USB大容量存储设备?,winapi,Winapi,如何在Windows(XP)中以编程方式弹出(安全删除)USB大容量存储设备?您可以生成一个进程并使用一个。这也适用于其他语言,如java,在java中调用Win32 api比较困难。在中,您有一个可以实现这一点的 它基本上来源于此,并使用kernel32.dll DeviceIoControl函数 当然,这个问题似乎是重复的,它给出了其他解决方案首先从 然后将文件夹“Library”的类导入到项目中 并将此代码放入单击按钮 private void btnExpulsar_Click(obje

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

您可以生成一个进程并使用一个。这也适用于其他语言,如java,在java中调用Win32 api比较困难。

在中,您有一个可以实现这一点的

它基本上来源于此,并使用kernel32.dll DeviceIoControl函数


当然,这个问题似乎是重复的,它给出了其他解决方案

首先从

然后将文件夹“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
                }
            }
        }   

不完全是我想要的,不过还是谢谢你:)。也许他们的许可证并不禁止反汇编他们的代码……是的,似乎这个问题已经被问到并回答了。您不需要将volumeDeviceClass放在using中吗(因为这是一个IDisPassable实现类)