using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Management;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace WMI_驱动
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
//SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");//硬盘盘符
SelectQuery selectQuery = new SelectQuery("select * from Win32_DiskDrive");//硬盘序列号 ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{
ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
listView1.Items.Add(lvi);
}
} private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_SystemDriver");//驱动程序
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
listView1.Items.Add(lvi);
}
} private void button3_Click(object sender, EventArgs e)
{ listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_USBController");//USB控制器
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
//ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(),"" },-1);
listView1.Items.Add(lvi);
} SelectQuery selectQuery2 = new SelectQuery("select * from Win32_USBHub");//USB集线器
ManagementObjectSearcher search2 = new ManagementObjectSearcher(selectQuery2);
foreach (ManagementObject Driver in search2.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
//ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(),"" },-1);
listView1.Items.Add(lvi);
} } private void Form1_Load(object sender, EventArgs e)
{
listView1.Columns.Clear();//清空列记录
ColumnHeader cZh = new ColumnHeader();//创建一个列
cZh.Text = "名称";//列名
cZh.Width = 300;
ColumnHeader cCh = new ColumnHeader();
cCh.Text = "描述";
cCh.Width = 600;
listView1.Columns.AddRange(new ColumnHeader[] { cZh, cCh });//将这两列加入listView1
listView1.View = View.Details;//列的显示模式
} private void button4_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_Printer ");//打印机
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(),"" }, -1);
listView1.Items.Add(lvi);
} } private void button5_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_PrinterConfiguration ");//打印机设置
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), "" }, -1);
listView1.Items.Add(lvi);
}
} private void button6_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_PrintJob ");//打印机任务
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), "" }, -1);
listView1.Items.Add(lvi);
}
} private void button7_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_TCPIPPrinterPort ");//打印机端口
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), "" }, -1);
listView1.Items.Add(lvi);
}
} private void button8_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_PointingDevice ");//点输入设备,鼠标
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
listView1.Items.Add(lvi);
}
} private void button9_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_Keyboard");//键盘
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), Driver["Description"].ToString() }, -1);
listView1.Items.Add(lvi);
}
} private void button10_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); SelectQuery selectQuery = new SelectQuery("select * from Win32_Printer ");//打印机
ManagementObjectSearcher search = new ManagementObjectSearcher(selectQuery);
foreach (ManagementObject Driver in search.Get())
{ ListViewItem lvi = new ListViewItem(new string[] { Driver["Name"].ToString(), "" }, -1);
listView1.Items.Add(lvi);
}
}
  }
}

仅仅实现了查询的功能,后续有待加入与设备管理器类似的管理功能!

C#中用WMI实现对驱动的查询的更多相关文章

  1. WMI技术介绍和应用——查询硬件信息

    //查询得到系统盘所在硬盘的ID SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE //如何使用WMI查询系统盘所在硬盘的 ...

  2. MongoDB官方C#驱动中查询条件Query用法

    Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("nam ...

  3. Linux驱动之按键驱动编写(查询方式)

    在Linux驱动之LED驱动编写已经详细介绍了一个驱动的编写过程,接着来写一个按键驱动程序,主要是在file_operations结构中添加了一个read函数.还是分以下几步说明 1.查看原理图,确定 ...

  4. oracle中用rownum分页并排序的查询SQL语句

    oracle的sql语句中没有limit,limit是mysql中特有的,在oracle中可用rownum来表示,用于查询结果中的前N行数据. 如要查询emp表中的前5行数据,可用如下语句: sele ...

  5. 解决用 VB 中用 ADO 访问 数据库时 SQL 查询处理 Null 值的问题( 使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理)

    程序的环境是 VB6 + ADO + Access,在用 SQL 语句查询时,希望把两个字段合并成一个字段,但其中一个字段 Null 值直接导致两个字段合并后也变成了 Null 值.之前只能用 VB ...

  6. HBase多条件及分页查询的一些方法

    HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式 ...

  7. C#操作WMI指南

    WMI应用(一个系统自带的测试WMI语句的工具) 1. 开始-运行-输入:wbemtest 回车2. 单击"连接", 输入:root\cimv2 回车; 或者ROOT\Securi ...

  8. MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动

    回到目录 上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是 ...

  9. 使用Python玩转WMI

    最近在网上搜索Python和WMI相关资料时,发现大部分文章都千篇一律,并且基本上只说了很基础的使用,并未深入说明如何使用WMI.本文打算更进一步,让我们使用Python玩转WMI. 1 什么是WMI ...

随机推荐

  1. 前端工程师应该都了解的16个最受欢迎的CSS框架

    摘要: 今天给大家分享16个最受欢迎的CSS框架.这些是根据笔者的爱好以及相关查阅规整出来的.可能还有一些更棒的或者您更喜欢的没有列举出来.如果有,欢迎留言! Pure : CSS Framework ...

  2. Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面

    一.应用程序中文化 1).Qt安装目录下有一个目录translations/,在此目录下有qt_zh_CN.ts和 qt_zh_CN.qm把它们拷贝到你的工程目录下. 2).在main函数加入下列代码 ...

  3. java泛型方法返回泛型结果

    public class Test { static HashMap<String, String> sMap = new HashMap<String, String>(); ...

  4. HTML连载7-表单练习

    昨天因为晚上有事情,未更新,但是今天中午发也不晚,因为是同一天只是时间早晚而已,因此今日傍晚还将更新一次,废话不多说. 1.表单的综合练习,我们要创建一个综合的注册页面.运用到我们前面所学的所有知识. ...

  5. Docker+ Kubernetes已成为云计算的主流(二十五)

    前言 最近正在抽时间编写k8s的相关教程,很是费时,等相关内容初步完成后,再和大家分享.对于k8s,还是上云更为简单.稳定并且节省成本,因此我们需要对主流云服务的容器服务进行了解,以便更好地应用于生产 ...

  6. 【转】JDK 内存参数含义

    Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm  Gen (Non-heap memory) ...

  7. 【JAVA NIO】java NIO

    本文是博主深入学习Netty前的一些铺垫,之前只是使用Netty,用的很粗暴,导包,上网找个DEMO就直接用,对Netty中的组件了解并不深入. 于是再此总结下基础,并对一些核心组件作如下记录: 1. ...

  8. mysql索引结构

    mysql中索引的数据结构: 1.基本上所有的索引都是B-Tree结构,一部分还有HASH索引. 2.索引分类(功能) 主键索引:一张表中最多有一个主键索引,而且该字段值不能为NULL,不能重复. 唯 ...

  9. CentOS 7 时区设置 timedatectl

    [root@testandy ~]# timedatectl --help timedatectl [OPTIONS...] COMMAND ... Query or change system ti ...

  10. 关于java中构造方法、实例初始化、静态初始化执行顺序

    在Java笔试中,构造方法.实例初始化.静态初始化执行顺序,是一个经常被考察的知识点. 像下面的这道题(刚刚刷题做到,虽然做对了,但是还是想整理一下) 运行下面的代码,输出的结果是... class ...