WMI(Windows管理规范)的一个实现
2006-07-20 11:39:52 来源:WEB开发网核心提示: //控制内部的代码//声明一个Status的事件委托类型public delegate void Status(string e);//声明了一个更新状态的事件public event Status UpdateStatus;//更新状态条UpdateStatus("Hello
//控制内部的代码
//声明一个Status的事件委托类型
public delegate void Status(string e);
//声明了一个更新状态的事件
public event Status UpdateStatus;
//更新状态条
UpdateStatus("Hello world.");
//主程序代码
//用参数中的字符串刷新状态条的显示文本
private void refreshStatusBar(string stringStatus)
{
//更新状态条
statusBarStatus.Text = stringStatus;
}
Explorer 控制
在Explorer控制内部,我使用了WMI的Win32_LogicalDisk类来访问所有本地的及网络映射的驱动器。要访问驱动器的相关信息,我得先使用一个ManagementObjectSearcher对象来获取一个包含了我所需驱动器信息的ManagementOjbectCollection对象(译注:原文用的是class,我认为不准确,因此改译为对象)。之后,我们就可以自由支配所有这些驱动器的信息。(比如驱动器名、类型、卷标、标识等等)。你也可以只查询剩余空间低于1MByte的驱动器的信息,对此只需要改变ManagementObjectSearcher参数而已:
//译注:这句就是查询剩余空间低于1MByte的SQL语句,用在ManagementObjectSearcher的构造时。
//是不是很象一般数据库编程里用的SQL语句啊?
Select * From Win32_LogicalDisk Where FreeSpace < 1000000
//取得驱动器集
ManagementObjectSearcher query =
new ManagementObjectSearcher ("SELECT * From Win32_LogicalDisk ");
ManagementObjectCollection queryCollection = query.Get();
//遍历每个对象,以获取每个驱动器的信息
foreach ( ManagementObject mo in queryCollection)
{
switch (int.Parse( mo["DriveType"].ToString()))
{
case Removable: //可移动驱动器
imageIndex = 5;
selectIndex = 5;
break;
case LocalDisk: //本地驱动器
imageIndex = 6;
selectIndex = 6;
break;
case CD: //CD-ROM驱动器
imageIndex = 7;
selectIndex = 7;
break;
case Network: //网络驱动器
imageIndex = 8;
selectIndex = 8;
break;
default: //缺省:文件夹
imageIndex = 2;
selectIndex = 3;
break;
}
//获取驱动器名
Console.WriteLine("Drive: " + mo["Name"].ToString());
}
SystemInfo 控制
更多精彩
赞助商链接