C#下通过wbemtest和WMI Code Cretor更加高效的访问WMI
能找到这篇博客的,相信都是有操作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的更多相关文章
- Ubuntu下安装并配置VS Code编译C++
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069091.html Ubuntu下安装并配置VS Code编译C++ 安装 ...
- windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机
首先要清楚virtual box如何设置端口转发: 一篇文章: 如何使用VirtualBox进行端口转发 由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦.以前一直 ...
- centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法
centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...
- iis7下url重写后,已存在的html不能访问了(未能执行URL)的解决方法
iis7下url重写后,原本存在的html不能访问了,未能执行URL(asp.net对真正的.html(但不符合重写规的)就不知道如何处理了),遇到类似情况的朋友可以参考下 当把.html的url ...
- tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决
tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决 在开发新项目的时候,有时候为了省时,直接把曾经做过的项目工程A拷贝成改名为B工程,然后再在B工程上进行功能的开发, 此 ...
- Windows下构建ASP.NET Core+Code First+Docker
背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...
- linux下C/C++IDE比较——Code::Blocks
工欲善其事,必先利其器.用了这么久的linux,现在比较主流的几个C/C++的IDE基本已都用过了,现在来对他们做一下简单的比较. 1.VIM首先要说的是VIM.我认为,VIM只是一个编辑器,不能算是 ...
- Eclipse+Pydev环境下出现error “eclipse Non-UTF-8 code”
文件首行加上”#coding=utf-8” ,这一句话可控制代码中可输入中文字符
- Linux下更改目录及其下的子目录和文件的访问权限
想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理. 例如: [root@localhost ~]# chmod 777 /home/user 注:仅把 ...
随机推荐
- fragment textWatcher的设置位置
override fun onStart() { super.onStart() Log.d("------------", "1") val titleWat ...
- [Django高级之中间件、csrf跨站请求伪造]
[Django高级之中间件.csrf跨站请求伪造] Django中间件 什么是中间件? Middleware is a framework of hooks into Django's request ...
- GO学习-(7) Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- Go语言流程控制03--goto跳转到任意标签位置
package main import ( "fmt" "time" ) func main() { STUDYHARD: fmt.Println(" ...
- 书列荐书 |《至关重要的关系》 【美】里德·霍夫曼
本书的内容不算多,堪称精辟,有些东西甚至可以作为指导思想.括号内为书列君书评. 经典语录: 每个人都是企业家!(否则你无法最大化努力!) 创业和做人是相通的.我们要有计划,要执着,但是也要有弹性,懂得 ...
- noip模拟5[string·matrix·big·所驼门王的宝藏]
怎么说呢这一场考得还算可以呢 拿了120pts,主要是最后一个题灵光开窍,想起来是tarjan,然后勉勉强强拿了40pts,本来是可以拿满分的,害 没事考完了就要反思 这场考试我心态超好,从第一个题开 ...
- MegEngine基本概念
MegEngine基本概念 基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文内容会简要介绍计算图及其相关基本概念,以及在 MegEngine 中的实现. 计算图 结合一个简单的 ...
- 智能物联网(AIoT,2020年)(中)
智能物联网(AIoT,2020年)(中) 05 中国AIoT产业图谱 06 中国AIoT商业模式 标准程度越低人力和时间成本投入越多,2B2C模式附加值高 07 中国AIoT玩家分布简介 四类玩家,优 ...
- BlazorCharts 原生图表库的建设历程
作者:陈超超 Ant Design Blazor 项目贡献者,拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,现就职于正泰集团. 邮箱:timchen@live.com 欢迎各位读 ...
- jvm调优的几种场景
假定你已经了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器. 一.cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束 ...