文章目录

  • 前言
  • 一、Management
  • 二、使用步骤
    • 1.引入库
    • 2.实现启停
  • 总结

前言

最近需要通过C#去控制设备管理器中设备的启用和禁止,在网上也试了很多办法,好些都不适用,这篇文章主要针对设备管理器中的某一个设备启用/禁用。


一、Management

本次要使用的就是程序集System.Management
System.Management提供对一组丰富的管理信息和管理事件的访问。

程序集中包括很多的类和接口,有感兴趣的小伙伴可以自行查找了解。
而我们要用的是System.Managerment下的ManagementObjectSearcher类和ManagementObject类


这里又涉及到一个WMI,Windows Management Instrumentation (WMI) ,不懂就搜一搜。
Windows Management Instrumentation是Windows中用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。
有个初步的了解之后,我们来看具体怎么使用。

二、使用步骤

1.引入库

using System.Management;

注意:如果你引用不到的话,记得手动添加程序集到项目引用中去。

2.实现启停

此处以USB移动硬盘为例,首先捋清思路。

人为操作如下图所示:

1.需要查找到相关的一系列设备
2.遍历这些设备,根据某些条件找到需要的设备
3.把设备拿到后,调用对应的禁用和启用方法

这样,我们的目的就达到了。

好了,开始敲代码

//用于存放获取到的设备
ManagementObject USB=null;//获取需要设备
public void GetDevices()
{//根据某个条件查找到对应设备ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM win32_PnPEntity");//遍历所有设备信息foreach (ManagementObject mgt in searcher.Get()){//按名字筛选if (Convert.ToString(mgt["Name"]) == "USB 大容量存储设备"){USB=mgt;}}
}//启用方法
public void DeviceEnable()
{if(USB==null){return;}try{USB.InvokeMethod("Enable",null);}catch(Exception e){Console.WriteLine(e.Message);}
}//禁用方法
public void DeviceDisable()
{if(USB==null){return;}try{USB.InvokeMethod("Disable",null);}catch(Exception e){Console.WriteLine(e.Message);}
}

条件即是FROM后的win32_PnPEntity,可以根据不同的条件查找到不同的内容。
常用的一些类库名可以检索 WMI使用的WIN32_类库名WMI使用的WIN32_类库名

启用是调用方法InvokeMethod(“Enable”,null);

禁用用是调用方法InvokeMethod(“Disable”,null);

注意:调用该方法是需要以管理员身份运行的!!!

总结

1.引用相关类库
2.查找到相关设备,遍历取满足条件者
3.实现启停

希望可以帮到你~

【C#】控制设备管理器中设备的启用/禁用_20220506相关推荐

  1. 设备管理器其它设备Android叹号,设备管理器中的设备显示感叹号/问号/叉号的解决方法...

    设备管理器是Windows操作系统自带的管理工具,其为用户提供了设置设备.启用/禁用设备.更新设备驱动程序等多种强大的功能,帮助用户能后更好的使用电脑的硬件设备,而部分用户在打开设备管理器时,发现部分 ...

  2. 计算机管理员已禁用了teredo,Win7提示设备管理器中出现叹号设备“Teredo tunneling pseudo-interface”...

    叹号设备是告诉我们驱动没有安装了或者是驱动不兼容问题了,解决办法也非常的简单下面给各位整理了一些处理办法. 知识点分析: Teredo 是一种地址分配和主机间自动隧道技术,当 IPv6 / IPv4 ...

  3. 计算机设备管理器怎么删鼠标,在电脑的设备管理器中怎么查看鼠标设备

    在电脑的设备管理器中怎么查看鼠标设备 腾讯视频/爱奇艺/优酷/外卖 充值4折起 今天给大家介绍一下在电脑的设备管理器中怎么查看鼠标设备的具体操作步骤. 1. 首先打开电脑,进入桌面,找到桌面上的此电脑 ...

  4. 解决ramdisk卸载后重新安装设备管理器中无法找到ramdisk设备问题

    ramdisk卸载重新安装出现设备无法显示,多数情况是因为没有卸载干净.ramdisk安装目录在c:\windows\system32目录下名字开头为ram**的文件为ramdisk的安装文件删除这些 ...

  5. 当腾讯会议提示“未检测到可用摄像头,请插入设备后重试”并且在设备管理器中没有发现摄像头驱动

    在搜索框中找到设备管理器这时我们并没有在设备管理器中发现摄像头的驱动 点击上面的查看按键,选择显示隐藏设备 这时我们发现设备管理器中摄像头驱动并不显示( 一定要记住摄像头的驱动信息),只需右键选择卸载 ...

  6. 设备管理器中的计算机注册表位置,电脑如何修改设备管理器里显示的名称|通过注册表修改设备名称的方法...

    ‍ 我们可以在电脑中通过设备管理器查看配置的硬件设备,以及各自的工作状态,驱动是否正常等,而里面显示的设备名称一般是不可以修改的.因为某些原因,可能会出现设备管理器里的设备出现重名的情况,因此,我们可 ...

  7. 设置 DevMgr_Show_NonPresent_Devices 令未连接的历史设备在 Windows 设备管理器中现形

    转自:http://blogs.itecn.net/blogs/alexis/archive/2011/07/07/How-to-show-NonPresent-Devices-in-Device-M ...

  8. win7计算机管理中设备管理器其他设备pcl感叹号 没声音,Win7设备管理器驱动出现感叹号怎么办?...

    驱动程序是电脑中比较重要的硬件组成部分,如果出现问题,就会影响相应功能的使用,严重可导致电脑瘫痪,如果发现设备管理器中驱动出现黄色感叹号,要及时进行解决,下面我们就看一下Win7设备管理器驱动出现感叹 ...

  9. Windows设备管理器中的错误代码

    适用于: Windows 10 Pro released in July 2015,Windows 10 Enterprise released in July 2015,Windows 8 概要 本 ...

最新文章

  1. 实现数据“一键脱敏”,Sharding Sphere帮你搞定
  2. linux常用命令(grep/cut/sed/which)
  3. 最小生成树算法MST_kruskal算法
  4. ubuntu 杀死进程命令
  5. C++ 并行与分布式编程 chapter5 任务间并发的同步(2)
  6. Bash基础(2) 通配符 组合键 数据重定向 管道 tee
  7. 轻松理解python中的_和__区别和含义
  8. Laravel深入学习10 - 里氏替换原则
  9. 43行代码AC——例题6-8 树(Tree,UVa 548)——解题报告
  10. smtp邮件服务器配置,配置电子邮件通知和指定 SMTP 服务器
  11. app接口制作简单流程
  12. python Excel xlsx file; not supported
  13. 6岁女孩出口之乎者也 用《论语》典故批评妈妈
  14. [渝粤教育] 四川工程职业技术学院 零件几何量检测 参考 资料
  15. 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器
  16. 互联网公司 概率面试题整理
  17. 揭密全球第一DSP IP授权商
  18. 互联网摸鱼日报(2022-11-29)
  19. 五子棋——人机智能对弈
  20. 高考415分能上计算机网络的学校吗,2021高考415分能上什么学校 可以报哪些学校...

热门文章

  1. Alink 是阿里巴巴基于实时计算引擎 Flink 研发的新
  2. iOS开发 常用第三方开源框架
  3. 电视盒子/投影仪是怎么看电视的?安利两款软件教程教会你
  4. 凯云科技——软件ETest
  5. ansible完全攻略
  6. JAVA 实现阿里云的全球物流快递查询(单号识别)
  7. 100种思维模型之九屏幕分析思维模型-016
  8. Linux更改ftp端口和Forklift破解keygen
  9. mac类似Winscp的软件ForkLift使用
  10. RNN文本生成-想为女朋友写诗(一)