以编程方式连接和断开USB“无需取消和复制”

时间:2009-05-27 06:01:33

标签: c# usb

我需要以编程方式连接和断开USB。也就是说,我已经插入了USB设备。我需要使用C#,.NET应用程序传输文件。应用程序将观察特定文件夹并将文件从该文件夹传输到USB驱动器。我需要在文件传输后断开USB设备,并在需要时连接USB - 无需拔下插头即可重新插入。

执行此操作的代码是什么,或者是否有可用的DLL文件?

主要内容:注意:注意: 无需拔出和重新插入USB设备

2 个答案:

答案 0 :(得分:1)

如果您的目标是在不使用某个磁盘卷时使其不可用,那么更合理的方法可能是使用卷管理API,例如:使用IOCTL_VOLUME_OFFLINE控制代码。 (我假设您知道哪个驱动器号属于您的USB磁盘。)

或者,您可以使用CfgMgr / SetupAPI以编程方式禁用和启用卷设备 - 与右键单击Device Manager中的卷并选择禁用一样。 (有关使用SetupAPI的信息,请查看随Windows WDK提供的DevCon示例代码,并查看MSDN以了解SetupDiChangeState等功能。)

后一个选项可能需要特权用户帐户。

答案 1 :(得分:0)

我不太确定,但可以做到。在Linux中,我遇到过某些情况,其中电源以编程方式断开连接到设备。如果连接的USB设备出现太多错误,内核通常会这样做。因此,即使在Windows中也应该可以这样做。您可能需要编写自己的外部DLL来执行此操作。