【C#】通过Devcon.exe控制设备管理器中设备的启停

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、devcon是什么?
  • 二、使用步骤
    • 1.下载devcon.exe 查找设备实例ID
    • 2.利用devcon.exe指令控制usb
  • 总结


前言

之前有写过一篇通过Management操作设备启停,但该方法只适用于操作系统win10及以上版本[C#]控制设备管理器中设备的启用/禁用

当Windows操作系统是win7,有两块型号相同的采集卡,使用时需要通过切换他们之间的启用和禁用,所以本次又提供了一种新的方法,devcon。


提示:以下是本篇文章正文内容,下面案例可供参考

一、devcon是什么?

DevCon (Devcon.exe)(即设备控制台)是一种命令行工具,用于显示有关运行 Windows 的计算机上的设备的详细信息。 可以使用 DevCon 启用、禁用、安装、配置以及删除设备。


二、使用步骤

1.下载devcon.exe 查找设备实例ID

首先我们先要下载devcon.exe,个人不建议到微软官方去下载,但还是附上链接。Windows 设备控制台 (Devcon.exe)

此链接下载包很大,集成了很多工具,其实可以直接将devcon提炼出来使用。附链接如下:提取码:04AF

下载完毕后,我们可以先查看一下需要操作的设备实例路径
【C#】通过Devcon.exe控制设备管理器中设备的启停_第1张图片

然后将devcon.exe复制到程序根目录下
【C#】通过Devcon.exe控制设备管理器中设备的启停_第2张图片

win+R 输入cmd 调出窗口
【C#】通过Devcon.exe控制设备管理器中设备的启停_第3张图片
先跳转至程序根目录下 然后输入 devcon find usb*
可以查到你所有的usb设备的实例ID
【C#】通过Devcon.exe控制设备管理器中设备的启停_第4张图片


2.利用devcon.exe指令控制usb

有了这串实例ID后,我们就可操作usb的启停了
在和devcon.exe的同一目录下创建两个bat文件
【C#】通过Devcon.exe控制设备管理器中设备的启停_第5张图片
bat文件中的内容分别是

devcon.exe disable  @"USB\VID_03F0&PID_E940\950521827201";//禁用

devcon.exe enable  @"USB\VID_03F0&PID_E940\950521827201";//启用

然后再我们的程序中调用这两个bat文件即可。
代码如下(示例):

		private void btn_Enable_Click(object sender, EventArgs e)
        {
            Process p = new Process();
            p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory+@"\启用.bat";
            p.StartInfo.UseShellExecute = false; //必要参数
            p.StartInfo.RedirectStandardOutput = true;//输出参数设定
            p.StartInfo.RedirectStandardInput = true;//传入参数设定
            p.StartInfo.CreateNoWindow = true;
            p.Start();
            p.WaitForExit();//等待程序执行完退出进程    
            p.Close();
        }

        private void btn_Disable_Click(object sender, EventArgs e)
        {
            Process p = new Process();
            p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory+@"\禁用.bat";
            p.StartInfo.UseShellExecute = false; //必要参数
            p.StartInfo.RedirectStandardOutput = true;//输出参数设定
            p.StartInfo.RedirectStandardInput = true;//传入参数设定
            p.StartInfo.CreateNoWindow = true;
            p.Start();
            p.WaitForExit();//等待程序执行完退出进程    
            p.Close();
        }

禁用成功
【C#】通过Devcon.exe控制设备管理器中设备的启停_第6张图片
启用成功
【C#】通过Devcon.exe控制设备管理器中设备的启停_第7张图片
当然,直接在cmd中运行devcon的指令也是可以的。
最后提醒一句,在禁用之前要确保设备未被占用,要不然会禁用失败。


总结

该方法通过devcon工具操作usb设备的启停,通过查找usb设备的实例id号发送enable和disable指令。
1.下载devcon
2.查找ID
3.发送指令

希望可以帮你到~

你可能感兴趣的:(#,C#,c#,windows,visual,studio)