能找到这篇博客的,相信都是有操作WMI需求的了。但是不知道如何快速验证、并集成到C#来操作WMI。我们分为3步:

##第一步:官网(或跟硬件开发WMI的人沟通你需要的接口和参数定义,如果是和硬件开发的人协定WMI接口,直接看第二步)查找你需要的WMI信息;

举例我需要获取显示器信息

我先biying搜索需要哪个WMI,再microsoft的docs下找到对应的WMI Requirements详细信息。

比如我知道了我需要WmiMonitorConnectionParams 来获取显示器信息。那么我去docs文档中搜索WmiMonitorConnectionParams ,地址如下:

WmiMonitorConnectionParams class - Win32 apps | Microsoft Docs

我们看下图的Namespace的Value是Root\wmi

我们就知道了,他书属于namespace命名空间的同时我们再网站的上面找到Properties,看到有一个一个InstanceName和一个VideoOutputTechnology,分别是string类型和uint32类型。

我们目前需要的信息就这么多,然后我们开始快速的再需要验证的机器上来验证接口返回信息,如果有问题。

##第二步:不需要写代码,快速验证接口是否可用。

(避免有因为个人代码导致的其他问题,占用大量沟时间,这种软硬件结合的沟通调试成本较高)

使用Win+R键打开允许输入wbemtest.exe按下回车,这是系统自带的WMI工具。

这个就是我们快速验证WMI的工具。

(1)点击连接。

(2)再弹出框的命名空间理输入我们刚才再网上查到的命名空间:Root\wmi。因为我们不是远程连接到其他电脑,所以连接保持默认。点击右上角连接。

(3)不一样的WMI消息查询方式是不一样的,比如有的是主动查询、有的是被动接受。主要差别是再选择查询和通知查询上。更为复杂的操作我们这里目前用不上,因为我们主要是为了验证WMI。

本次我们点击查询,因为是我们主动查询显示器信息,这不是一个事件,在弹出的查询对话框中输入:

SELECT InstanceName, VideoOutputTechnology FROM WmiMonitorConnectionParams

点击应用,出现下图就代表该接口能正常访问,如果提示错误,就代表输入有问题。或输入的WMI有问题,需要调试或跟对应的人员沟通,如果是硬件给你发送的WMI,要确认这台机器上硬件以调试好,能正常发送WMI消息。

达到这样的效果,WMI就相当于测试通拉,是不是快速验证WMI特别方便和快捷?能大量提高沟通效率。 接下来就是代码环节了。

##第三步:使用WMI工具生成代码:

WMI Code Creator是微软提供的一个WMI代码生成工具,用于生成对应的WMI访问代码。可以选择

从这个网站下载软件:

Download WMI Code Creator v1.0 from Official Microsoft Download Center

我们点击Code Language 切换到C# 。

(1)Namespace:选择root\WMI (-------注意大小写!!!-------)

(2)再Classes选择或输入我们查到的WmiMonitorConnectionParams 。

(3)再result下勾选我们要查询的内容,3个我们都要查。

(4)代码就会再右侧出现了。这样的话。就能正常的移植代码到我们的项目中拉。

(5)这个访问WMI的功能微软主要封装在System.Management的命名空间下。剩下的就可以自己扩展拉。有自己去访问得到值得WMI。还有接受事件得WMI。主要思路就是先查或定义自己要用得WMI接口然后查询或者协商定义参数。然后再这里封装代码就可以拉。

C#下通过wbemtest和WMI Code Cretor更加高效的访问WMI的更多相关文章

  1. Ubuntu下安装并配置VS Code编译C++

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069091.html Ubuntu下安装并配置VS Code编译C++ 安装 ...

  2. windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机

    首先要清楚virtual box如何设置端口转发: 一篇文章: 如何使用VirtualBox进行端口转发 由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦.以前一直 ...

  3. centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法

    centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...

  4. iis7下url重写后,已存在的html不能访问了(未能执行URL)的解决方法

    iis7下url重写后,原本存在的html不能访问了,未能执行URL(asp.net对真正的.html(但不符合重写规的)就不知道如何处理了),遇到类似情况的朋友可以参考下   当把.html的url ...

  5. tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决

    tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决 在开发新项目的时候,有时候为了省时,直接把曾经做过的项目工程A拷贝成改名为B工程,然后再在B工程上进行功能的开发, 此 ...

  6. Windows下构建ASP.NET Core+Code First+Docker

    背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...

  7. linux下C/C++IDE比较——Code::Blocks

    工欲善其事,必先利其器.用了这么久的linux,现在比较主流的几个C/C++的IDE基本已都用过了,现在来对他们做一下简单的比较. 1.VIM首先要说的是VIM.我认为,VIM只是一个编辑器,不能算是 ...

  8. Eclipse+Pydev环境下出现error “eclipse Non-UTF-8 code”

    文件首行加上”#coding=utf-8”   ,这一句话可控制代码中可输入中文字符

  9. Linux下更改目录及其下的子目录和文件的访问权限

    想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理. 例如: [root@localhost ~]# chmod 777 /home/user 注:仅把 ...

随机推荐

  1. fragment textWatcher的设置位置

    override fun onStart() { super.onStart() Log.d("------------", "1") val titleWat ...

  2. [Django高级之中间件、csrf跨站请求伪造]

    [Django高级之中间件.csrf跨站请求伪造] Django中间件 什么是中间件? Middleware is a framework of hooks into Django's request ...

  3. GO学习-(7) Go语言基础之流程控制

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...

  4. Go语言流程控制03--goto跳转到任意标签位置

    package main import ( "fmt" "time" ) func main() { STUDYHARD: fmt.Println(" ...

  5. 书列荐书 |《至关重要的关系》 【美】里德·霍夫曼

    本书的内容不算多,堪称精辟,有些东西甚至可以作为指导思想.括号内为书列君书评. 经典语录: 每个人都是企业家!(否则你无法最大化努力!) 创业和做人是相通的.我们要有计划,要执着,但是也要有弹性,懂得 ...

  6. noip模拟5[string·matrix·big·所驼门王的宝藏]

    怎么说呢这一场考得还算可以呢 拿了120pts,主要是最后一个题灵光开窍,想起来是tarjan,然后勉勉强强拿了40pts,本来是可以拿满分的,害 没事考完了就要反思 这场考试我心态超好,从第一个题开 ...

  7. MegEngine基本概念

    MegEngine基本概念 基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文内容会简要介绍计算图及其相关基本概念,以及在 MegEngine 中的实现. 计算图 结合一个简单的 ...

  8. 智能物联网(AIoT,2020年)(中)

    智能物联网(AIoT,2020年)(中) 05 中国AIoT产业图谱 06 中国AIoT商业模式 标准程度越低人力和时间成本投入越多,2B2C模式附加值高 07 中国AIoT玩家分布简介 四类玩家,优 ...

  9. BlazorCharts 原生图表库的建设历程

    作者:陈超超 Ant Design Blazor 项目贡献者,拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,现就职于正泰集团. 邮箱:timchen@live.com 欢迎各位读 ...

  10. jvm调优的几种场景

    假定你已经了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器. 一.cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束 ...