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

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

使用WMI获得硬盘的信息

首先,什么是WMI?
WMI(Windows治理架构:Windows Management Instrumentation)是Microsoft基于Web的企业治理(WBEM)和 Desktop Management Task Force(DMTF)工业标准的实现. 就是一种基于标准的系统治理的开发接口,这组接口用来控制治理计算机. 它提供了一种简朴的方式来治理和控制系统资源.
假如你想深入了解他,可以参考Micorosft Platform SDK . 在这我们只是通过它实现一个简朴的功能, 得到我们系统中硬盘的相关信息.
我们需要使用.net Framwork里面System.Management名字空间下提供的类来实现.
using System;
using System.Management;
using System.Collections;
using System.Collections.Specialized;
namespace ACE_Console
{
class ACE_Console
{
[STAThread]
static void Main(string[] args)
{
StringCollection propNames = new StringCollection();
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
PropertyDataCollection props = driveClass.Properties;
foreach (PropertyData driveProperty in props)
{
propNames.Add(driveProperty.Name);
}
int idx = 0;
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drv in drives)
{
Console.WriteLine(" Drive({0}) Properties ", idx+1);
foreach (string strProp in propNames)
{
Console.WriteLine("Property: {0}, Value: {1}", strProp, drv[strProp]);
}
}
}
}
}



.net Framework SDK自带的帮助里有获得逻辑硬盘大小的代码:
[C#]

using System;

using System.Management;



// This example demonstrates getting information about a class using the ManagementClass object

class Sample_ManagementClass

{

public static int Main(string[] args)

{

ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");

diskClass.Get();

Console.WriteLine("Logical Disk class has " + diskClass.Properties.Count + " properties");

return 0;

}

}


[vb]
Imports System

Imports System.Management



// This example demonstrates getting information about a class using the ManagementClass

Class Sample_ManagementClass


Overloads Public Shared Function Main(args() As String) As Integer

Dim diskClass As New ManagementClass("Win32_LogicalDisk")

diskClass.Get()

Console.WriteLine(("Logical Disk class has " & diskClass.Properties.Count.ToString() & " properties"))

Return 0

End Function

End Class





返回类别: 教程
上一教程: .net的reflection (1)
下一教程: 关注Delphi.NET,呵呵,我们又要吞并一个版了(转自CSDN)

您可以阅读与"使用WMI获得硬盘的信息"相关的教程:
· 如何在服务器上保存一定时间的信息
· 在.NET中轻松获取系统信息(1) -WMI篇 Montaque(原作)
· 使用 Microsoft.NET Frameworks 创建Windows应用程序
· 在.NET下获取硬盘序列号的问题
· 使用.NET CF开发Smartphone应用程序 FAQ
    微笑服务 优质保证 索取样品