如何用WMI获得本地磁盘的信息?
首先要在VS.NET中创建一个项目,然后在添加引用中引用一个.net的装配件:System.Management.dll,这样你的项目才能使用WMI。代码如下:
using System;
using System.Management; class Sample_ManagementObject
{
 public static int Main(string[] args) 
 {
  SelectQuery query=new SelectQuery("Select * From Win32_LogicalDisk");
  ManagementObjectSearcher searcher=new ManagementObjectSearcher(query);
  foreach(ManagementBaseObject disk in searcher.Get())
  {
   Console.WriteLine("\r\n"+disk["Name"] +" "+disk["DriveType"] + " " + disk["VolumeName"]);
  }
  Console.ReadLine();  return 0; }}disk["DriveType"] 的返回值意义如下:1 No type 
2 Floppy disk 
3 Hard disk 
4 Removable drive or network drive 
5 CD-ROM 
6 RAM disk

解决方案 »

  1.   

    本地数据读取没有问题,是远程数据,因为读取远程数据要用tcp连接的,我不是说wmi本身查询有问题,而是说wmi查询的时候它要与远程计算机建立连接,而这个socket没有释放,但是在C#的代码里是没有释放这种资源的呀。我想解决的是查询完成之后如何关闭socket.而不是查询数据的问题。
      

  2.   

    呵呵。问题是socket的操作好像都被wmi封装起来了呀。