c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI

第一步:

官网(或跟硬件开发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的详细内容,更多关于c# 高效的访问WMI的资料请关注我们其它相关文章!

(0)

相关推荐

  • c#使用wmi查询usb设备信息示例

    开发环境:Visual Studio V2010 .NET Framework 4 Client Profile 复制代码 代码如下: using System;using System.Management;using System.Text.RegularExpressions;using System.Collections.Generic; namespace Splash.IO.PORTS{/// <summary>/// 即插即用设备信息结构/// </summary>

  • 利用C#操作WMI指南

    1 什么是WMI? Windows Management Instrumentation (WMI)是可伸缩的系统管理结构,该规范采用一个统一.基于标准且可扩展的面向对象接口.它提供与系统管理员信息和基础WMI API交互的标准方法,主要由系统管理应用程序开发人员和系统管理员用来访问和操作系统管理信息:它可用来生成组织和管理系统信息的工具,使系统管理人员能够更密切的监视系统活动. WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,可以在有大量的应用程序.服务

  • C#利用WMI操作DNS服务器(可远程操作,需要相应权限)

    using System; using System.Collections.Generic; using System.Text; using System.Data; namespace Yaosansi {     class Test     {         static void Main()         {             MyDnsTEST();         } /// <summary>     /// MyDnsTEST功能测试   /// C#利用WMI

  • 磁盘配额的wmi版本(C#)

    using System;  using System.Management;  namespace DiskQuota  {       /// <summary>       /// Class1 的摘要说明.       /// </summary>       class Class1       {           /// <summary>           /// 应用程序的主入口点.           /// </summary> 

  • c#与WMI使用技巧集第1/2页

    1. 什么是WMI  WMI是英文Windows Management Instrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比如:重启,关机,关闭进程,创建进程等.  2. 如何用WMI获得本地磁盘的信息?  首先要在VS.NET中创建一个项目,然后在添加引用中引用一个.net的装配件:System.Management.dll,这样你的项目才能使用WMI.代码如下:  using System;  using S

  • c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI

    第一步: 官网(或跟硬件开发WMI的人沟通你需要的接口和参数定义,如果是和硬件开发的人协定WMI接口,直接看第二步)查找你需要的WMI信息: 举例我需要获取显示器信息 我先biying搜索需要哪个WMI,再microsoft的docs下找到对应的WMI Requirements详细信息. 比如我知道了我需要WmiMonitorConnectionParams 来获取显示器信息.那么我去docs文档中搜索WmiMonitorConnectionParams ,地址如下: WmiMonitorCon

  • WMI IE代理 切换或改变(Use WMI Change IE Proxy)

    将下面的代码,保存为 vbs即可 复制代码 代码如下: If WScript.Arguments.Count = 0 Then GetI = -1 Else GetI = CInt(WScript.Arguments(0)) End If Call YourCode() '把你弄到的代理都写在一个文本文件里(IP.txt),格式是一行一个: ip:端口 IPS = CreateObject("Scripting.FileSystemObject").OpenTextFile("

  • SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案

    今天一位同事在启动自己工作机的SQL Server 2012配置管理器时遇到如下报错: 无法连接到 WMI 提供程序.您没有权限或者该服务器无法访问.请注意,您只能使用 SQL Server 配置管理器来管理 SQL Server 2005 服务器. 找不到指定的模块. [0x80041010] Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that yo

  • WMI入门教程之怎么使用WMI?

    知道了WMI是什么以后,肯定想要知道如何使用WMI干活.它能写"Hello World"吗?WMI没那么无聊,它一上来就会问你"你想要什么?"或者"你想要更改什么?"... WMI工具 Windows本身提供了几个WMI工具供用户使用,包括WMIC.exe.WBEMTest.exe和WMI Administrative Tools等.前两个是系统自带的,最后一个需要自己下载安装.不过说实话,我最喜欢WMI Administrative Tools

  • PowerShell入门教程之访问.Net程序集、COM和WMI实例

    PowerShell可以设计的大而全,重新实现一切:也可以像现在一样设计成胶水语言,利用现有的资源.特别是,与.Net.COM和WMI三大豪门的联姻,使得PowerShell必将在Windows世界里大放光彩. 与新锐.Net联姻 在Windows的世界里,.Net代表着现在和将来,是新生力量.与.Net联姻,就意味着榜上了粗腿,迈上了快车道.号称基于.Net Framework,那么使用.Net的基类就易如反掌.基本步骤如下:1.添加类所在程序集:2.创建类的实例:3.调用实例的函数或者属性.

  • WMI入门教程之什么是WMI?

    WMI出现至今已经二十多年了,但很多人对它并不熟悉.知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么?现在我跟大家说说我的理解... WMI有一组API.我们不管使用VBScript.PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API.这些API是在系统安装WMI模块的时候安装的,通过他们我们能够能拿到我们想要的类. WMI有一个存储库.尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或

  • Powershell小技巧之使用WMI测试服务响应

    测试一个服务是否有响应,有一个好办法.首先,使用WMI查询你指定的服务,WMI中可以返回构成它进程的ID. function Test-ServiceResponding($ServiceName) { $service = Get-WmiObject -Class Win32_Service -Filter "Name='$ServiceName'" $processID = $service.processID $process = Get-Process -Id $process

  • WMI 脚本高手不完全手册

    Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术:用户可以使用 WMI 管理本地和远程计算机.WMI 通过编程和脚本语言为日常管理提供了一条连续一致的途径.用户可以: 1.在远程计算机器上启动一个进程. 2.设定一个在特定日期和时间运行的进程. 3.远程启动计算机. 4.获得本地或远程计算机的已安装程序列表. 5.查询本地或远程计算机的 Windows 事件日志. 而WMI适用的运得环境也是有些限制的,WMI

  • 利用WMI实现系统补丁检测分析

    WMI是Windows 2000/XP管理系统的核心:对于其它的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器 (Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口.Windows 管理规范 (WMI) 是可伸缩的系统管理结构,它采用一个统一的.基于标准的.可扩展的面向对象接口.我在刚开始理解WMI的时候,总以

随机推荐