网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

WMI使用教程(译)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12

先介绍一下WMI相关知识:
什么是WMI呢? Windows 管理规范 (Windows Management Instrumentation ),它的主要功能包括:访问本地主机的一些信息和服务,可以远程管理计算机(当然你必须拥有足够的权限)也就是说可以象重起,关机,关闭进程,创建进程等等!

有了初步了解下面我门开始一些初步的工作吧:
在这个WMI程序中,我将实现四个基本功能:
1.Explorer 类似与windows里的资源管理器
2.SystemInfo 查看你的硬件信息和OS信息
3.Services 当前正在工作的信息
4.Processes 当前执行的进程
(这里是可以管理远程和本地OS的)

好了,我们要开始实现访问我们的OS了,不过在这之前我们必须要引入System.Management这个命名空间

下面让我们了解一下控件的状态事件

我们必须保证是实时的所以必须在这里包涵UpdateStatus(string e)该事件(这是一个自定义的)
这里主要是希望在点击每个控件时刷新状态栏,可以让用户知道程序在做什么!

代码事例:
//控件代码
//状态事件的代理
public delegate void Status(string e);
public event Status UpdateStatus;
//这里更新状态栏
UpdateStatus("Hello world.");

//这里是在主程序里的代码
//写具体的事件代码
private void refreshStatusBar(string stringStatus)
{
//update status bar
statusBarStatus.Text = stringStatus;
}

下面是具体代码:

Explorer Control

这里首先介绍一下WMI的 Win32_LogicalDisk类(参考Platform SDK: Windows Management Instrumentation),通过它我们可以查看到本地驱动器
的一些详细情况,我们还需要用到System.Management中的两个类ManagementObjectSearcher
和ManagementOjbectCollection它们的作用主要是ManagementObjectSearcher将查询到了
ManagementOjbectCollection该对象的集合中去(这里可以获取的驱动器信息包括 驱动器的名称
,类型,描述信息等)当然你也可以只查看驱动器的部分信息可以在ManagementObjectSearcher类
的构造函数中这样写ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk "); (参考Platform SDK: Windows Management Instrumentation)
代码如下:
//get drive collection
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");
ManagementObjectCollection queryCollection = query.Get();

//loop throught each object to get drive information
foreach ( ManagementObject mo in queryCollection)
{
switch (int.Parse( mo["DriveType"].ToString()))
{
case Removable: //removable drives
imageIndex = 5;
selectIndex = 5;
break;
case LocalDisk: //Local drives
imageIndex = 6;
selectIndex = 6;
break;
case CD: //CD rom drives
imageIndex = 7;
selectIndex = 7;
break;
case Network: //Network drives
imageIndex = 8;
selectIndex = 8;
break;
default: //defalut to folder
imageIndex = 2;
selectIndex = 3;
break;
}

//get drive name
Console.WriteLine("Drive: " + mo["Name"].ToString());
}

SystemInfo Control

该控件主要用来查看本地或远程主机的OS和硬件信息,这里需要用到另外两个
对象ConnectionOptions和ManagementScope,ConnectionOptions主要是设置
WMI连接信息的,如用户名和密码,这里我们主要用到它的两个属性UserName和
Password; ManagementScope对象表示WMI的规范,通过该规范可以访问服务器
和命名空间的路径已及使用ConnectionOptions中的设置
请看如下代码:
//C

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号