首先,什么是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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器