使用WMI获得硬盘的信息
2004-02-05 00:50
447 查看
首先,什么是WMI?
WMI(Windows管理架构:Windows Management Instrumentation)是Microsoft基于Web的企业管理(WBEM)和 Desktop Management Task Force(DMTF)工业标准的实现. 就是一种基于标准的系统管理的开发接口,这组接口用来控制管理计算机. 它提供了一种简单的方法来管理和控制系统资源.
如果你想深入了解他,可以参考Micorosft Platform SDK . 在这我们只是通过它实现一个简单的功能, 得到我们系统中硬盘的相关信息.
我们需要使用.net Framwork里面System.Management名字空间下提供的类来实现.
.net Framework SDK自带的帮助里有获得逻辑硬盘大小的代码:
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]); } } } } } |
[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 FunctionEnd Class |
相关文章推荐
- 能否判断动态数组有没有被分配过?
- Henry的VB.NET之旅(十二)—事件驱动
- Henry的VB.NET之旅(十三)—标准事件处理程序
- Henry的VB.NET之旅(十四)—动态关联事件与处理程序
- Henry的VB.NET之旅(十五)—动态事件处理方法
- Java网络编程3
- Java网络编程4
- Henry的VB.NET之旅(十一)—可视继承
- Java网络编程,有助于解决实际问题,
- 如何使Microsoft SQL Server的日志文件不会增大
- Marco Cantu的书架
- 几个 WMI 的例子(初级) - 2
- WEB环境中后台自动上传文件至数据库的实现
- 保证应用程序只有一个实例在运行
- (5)Shark工作流的实现和WMFC&OMG规范的对比
- Shark工作流的实现和WMFC&OMG规范的对比(工作流流程的设计)
- 给pb的listview或者treeview控件加上背景图
- C++对象模型之数据成员模型(1)
- WAPI 国家标准讨论中的几个误区
- Mono 0.30发布了