快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

在.NET中轻松获取系统信息(1) -WMI篇 Montaque(原作)

在.NET中轻松获取系统信息(1) -WMI篇    Montaque(原作)  
  
要害字     WMI,WQL,ManagementObjectSearcher
  


在.NET中轻松获取系统信息(1) -WMI篇

Montaque

申明:

    1、个人的一点心得,仅供参考
    2、转载时候,请保留原本。




概述:

       不知道大家有没有这种体会?有时候为了获取系统一点点信息,比如考虑一下操作系统的版本号,或者当前屏幕的分辨率。其实说到底就是读操作系统某个方面的一个属性值而已,然后就看到我们的程序中密密麻麻的Win32 API申明,调用,代码的可读性和维护性不言而喻。到了.NET,微软提供了更为丰富的类,有很多以前要调用API的方式可以在.NET中轻而易举的调用实现。今天简朴介绍一个在.NET中如何通过与WMI(Windows 治理规范)的通讯,从而得到获取信息的目的。

主要思路:

       举一个获取操作系统共享目录和获取主板号的例子,介绍如何利用System.Managment下面的类获取系统相关的信息:



正文:

       WMI(Windows治理规范:Windows Management Instrumentation)是Microsoft基于Web的企业治理(WBEM)的实现,同时也是一种基于标准的系统治理接口。WMI最早出现在Microsoft Windows 2000系统上,但它同样可以安装在Windows NT 4和Windows 9x计算机上。WMI是一种轻松获取系统信息的强盛工具。

       在.NET中,有一个System.Management名空间(系统默认没有引用,我们可以手动添加引用),通过下面的Class的操作,可以查询系统软硬件的信息,先看一个简朴的例子:



Imports System.Management

Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_share")

Dim share As ManagementObject

For Each share In searcher.Get()

       MessageBox.Show(share.GetText(TextFormat.Mof))

Next share


运行的结果是列出了所有系统当前共享的目录、以及描述等等。



分析一下上面的代码,可以看到一下几点:

1、好像是在进行数据库操作,有点像SQL语句。其实就是SQL操作,这种语句被成WQL(WMI Query Language),实际上是标准SQL的一个子集加上了WMI的扩展.

2、WQL是个只读的查询语言,我们只能查询响应的数据,不能用UPDATE,INSERT等更新操作

3、代码很简朴、通俗易懂

4、我们采用了一种MOF(托管对象格式)的显示。



例子二:获取当前主板的信息

       上面的例子是一个软件方面的信息,下面看一个获取硬件信息的例子,获取主板的序列号以及制造商:

Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard")

Dim share As ManagementObject

   For Each share In searcher.Get()

      Debug.WriteLine("主板制造商:" & share("Manufacturer"))

      Debug.WriteLine("型号:" & share("Product"))

      Debug.WriteLine("序列号:" & share("SerialNumber"))

   Next share


总结以及补充:

       WMI类也是分层次的,详细可以参考msdn中的WMI;转向.NET平台开发的时候,最好能多看一些关于.NET新特性的介绍,这样可以大幅度的提升代码的开发效率以及运行效率。





返回类别: 教程
上一教程: 将Asp.Net页面输出到EXCEL里去
下一教程: 用asp.net和xml做的新闻更新系统(3)

您可以阅读与"在.NET中轻松获取系统信息(1) -WMI篇 Montaque(原作)"相关的教程:
· 在.net中轻松把握Windows窗体间的数据交互
· 用asp.net和xml做的新闻更新系统(1)
· c#的运行环境的系统最低要求.还有.net的运行环境的最低系统要求?3ks....
· .NET系统学习----Globalization & Resources
· 设计ASP.NET新闻治理系统
    微笑服务 优质保证 索取样品