【问题标题】:How to uninstall usb device using c#如何使用 C# 卸载 USB 设备
【发布时间】:2012-11-19 03:39:36
【问题描述】:

请帮我卸载window os中的usb设备。当我的一个 USB 从我的笔记本电脑中移除时,我的 Windows 操作系统记得我的笔记本电脑中已经添加了一个 USB,现在我想卸载它。

类似于“卸载选定设备”模块中的 usbdeview 软件。 这是本软件的链接:http://www.nirsoft.net/utils/usb_devices_view.html

【问题讨论】:

    标签: c# usb device uninstallation


    【解决方案1】:

    Devcon

    使用名为 devcon 的命令行工具让它工作,然后我从代码中调用它。

    将 devcon.exe 放入系统路径之一,以便它在任何地方都可以使用。

    开发者大会:开发者大会

    调用:DEVCON Remove 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();
    

    【讨论】:

    • 非常感谢 Devcon,但我想卸载设备 USB,而不是删除。
    【解决方案2】:

    首先,如果您正在寻找清除驱动程序的实用程序,我认为这不是要问的地方,也许是超级用户。

    如果您想自己从代码中卸载驱动程序,我认为您在 .net 框架中没有一个类来卸载驱动程序。但是,仍然可以使用 C# 来完成。为此,您有一个 Win32 API 函数:DiUninstallDevice 这是一个本机调用,API 是在 C 中。您必须编写一个包装器并使用 P/Invoke 从 .net 调用它。

    一般逻辑如下:当 Windows 操作系统通知您 USB 设备已断开连接时,您应该扫描您的驱动程序树,识别您的驱动程序,然后使用上述函数调用删除您的驱动程序。

    无论如何,您的 Windows 主机都会使用您的 USB 设备的 PID(产品 ID)、VID(供应商 ID)和序列号来记住设备。因此,当您的设备再次插入时,它会使用这些参数自动识别 USB 设备并搜索驱动程序(当然,如果过去已经安装过驱动程序)。

    【讨论】:

      猜你喜欢
      • 2013-08-15
      • 2021-03-16
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多