服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

.net使用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

扫描关注微信公众号