fox*_*fox 5 c# usb device uninstallation
请帮我在 Windows 操作系统中卸载 USB 设备。当我的一个 USB 从我的笔记本电脑上移除时,我的 Windows 操作系统记得我的笔记本电脑中已添加了一个 USB,现在我想卸载它。
就像 usbdeview 软件中的“卸载选定设备”模块一样。这是该软件的链接:http ://www.nirsoft.net/utils/usb_devices_view.html
通过使用一个名为 devcon 的命令行工具让它工作,然后我从代码中调用它。
将 devcon.exe 放入系统路径之一,以便它可以在任何地方使用。
开发者大会: 开发者大会
称为: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();
Run Code Online (Sandbox Code Playgroud)
首先,如果您正在寻找一个实用程序来清除驱动程序,我认为这不是询问的地方,也许是超级用户。
如果您想从代码中自行卸载驱动程序,我认为.net框架中没有用于卸载驱动程序的类。但是,仍然可以使用 C# 来完成。为此,您有一个 Win32 API 函数:DiUninstallDevice,它是本机调用,API 位于 C 语言中。您必须编写一个包装器,并使用 P/Invoke 从 .net 调用它。
一般逻辑如下:当 Windows 操作系统通知您 USB 设备已断开连接时,您应该扫描驱动程序树,识别您的驱动程序,然后使用上述函数调用删除您的驱动程序。
无论如何,您的 Windows 主机会使用 USB 设备的 PID(产品 ID)、VID(供应商 ID)和序列号记住该设备。因此,当您的设备再次插入时,它会自动使用这些参数识别 USB 设备并搜索驱动程序(当然,如果以前已经安装过驱动程序)。