在 device manager 中,可以看到诸多设备。比如 U盘,usb mass storage device 。在其属性页中,有 hwid, sn , location paths etc。这些信息如何查询 得到?请高手提示。

解决方案 »

  1.   

    用WMI,去微软的网站down一个WMI的SDK,里边有例程
      

  2.   

    参考:
    http://www.vckbase.com/document/viewdoc/?id=1342
      

  3.   

    查看device manager,可以通过WMI的Win32_PNPEntity 来查看
      

  4.   

    class Win32_PnPEntity : CIM_LogicalDevice
    {
      uint16   Availability;
      string   Caption;
      string   ClassGuid;
      string   CompatibleID[];
      uint32   ConfigManagerErrorCode;
      boolean  ConfigManagerUserConfig;
      string   CreationClassName;
      string   Description;
      string   DeviceID;
      boolean  ErrorCleared;
      string   ErrorDescription;
      string   HardwareID[];
      datetime InstallDate;
      uint32   LastErrorCode;
      string   Manufacturer;
      string   Name;
      string   PNPDeviceID;
      uint16   PowerManagementCapabilities[];
      boolean  PowerManagementSupported;
      string   Service;
      string   Status;
      uint16   StatusInfo;
      string   SystemCreationClassName;
      string   SystemName;
    };
      

  5.   

    http://msdn.microsoft.com/en-us/library/aa394353%28VS.85%29.aspx
      

  6.   

    基本上这些信息都保存在注册表里面,可以直接访问注册表,或者通过SetupDI...系列API来访问设备信息,一些公用的信息可以通过SetupDiGetClassProperty读取,设备专用或者私有的属性可以通过SetupDiGetClassRegistryProperty或者SetupDiGetDeviceRegistryProperty获取。
      

  7.   

    SetupDiGetDeviceProperty  可以抓。谢谢几位。
      

  8.   

    SetupDiGetDeviceProperty  只有Vista之后才支持啊……