请帮我在windows os中卸载usb设备。当我的笔记本电脑中有一个我的USB被移除时,我的窗口记得在我的笔记本电脑中添加了一个USB,现在我想卸载它。
与模块“卸载所选设备”中的usbdeview软件类似。 这是这个软的链接:http://www.nirsoft.net/utils/usb_devices_view.html
答案 0 :(得分:1)
首先,如果您正在搜索清除驱动程序的实用程序,我不认为这是要求的地方,也许是超级用户。
如果您想从代码中自行卸载驱动程序,我认为您在.net框架中没有类来卸载驱动程序。但是,仍然可以使用C#完成。你有一个Win32 API函数:DiUninstallDevice它是一个本机调用和它在C中的API。你必须编写一个包装器并使用P / Invoke从.net调用它。
一般逻辑是这样的:当Windows操作系统通知您USB设备已断开连接时,您应扫描驱动程序树,识别驱动程序,然后使用上述函数调用删除驱动程序。
无论如何,您的Windows主机会记住使用您的USB设备的PID(产品ID),VID(供应商ID)和序列号的设备。因此,当您的设备再次插入时,它将使用这些参数自动识别USB设备并搜索驱动程序(当然,如果过去已安装过该驱动程序)。
答案 1 :(得分:1)
通过使用名为devcon的命令行工具来实现它,然后我从代码中调用它。
将devcon.exe删除到其中一个系统路径中,以便它可以在任何地方使用。
Devcon:devcon
调用:DEVCON删除usb“MI_01”
然后调用:DEVCON重新扫描
代码:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "DEVCON";
proc.StartInfo.Arguments = "Remove *usb"*MI_01";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();