2017-08-14 28 views
0

システム内のディスクまたは複数のディスクの状態を監視するアプリケーションを作成したいとします。これまでのところ、それがうまく働いたhttp://wutils.com/wmi/root/wmi/msstoragedriver_atapismartdata/ - 私はWMI「ルート/ WMI」とMSStorageDriverを介してディスクを管理し、実際の値(データおよびしきい値)のためにこれらを照会することができますことを発見しC#/。NETを使用してディスクに応じてATAPI SMARTデータを取得する方法

、リンク 下に続きます: - )

しかし、今まで私は複数のディスクを管理していませんでした。ディスクに応じてSMARTデータを取得する方法がわかりません

誰でも私がこの問題を解決するのに役立つでしょうか?

多くのおかげで、 Quyen

答えて

0

私が試し、成功、私はこの問題の答えを共有したいと思います

  • 取得PNPDeviceID
  • 取得のInstanceName PNPDeviceのに応じ
  • SMARTデータを取得します。 InstanceNameから

例コードその後

public string PNPDeviceID 
    { 
     set 
     { 
      this.m_PNPDeviceID = value; 
      this.InstanceName = null; 
      this.QueryObjATAPISmartData = null; 

      SearcherPnPDeviceId = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSWmi_PnPDeviceId"); 
      foreach (ManagementObject queryObj in SearcherPnPDeviceId.Get()) 
      { 
       if (queryObj["PNPDeviceID"] != null) 
       { 
        if (this.PNPDeviceID.ToUpper() == queryObj.GetPropertyValue("PNPDeviceID").ToString().ToUpper()) 
        { 
         if (queryObj["InstanceName"] != null) 
         { 
          this.InstanceName = queryObj["InstanceName"].ToString(); 
          break; 
         } 
        } 
       } 
      } 

      if (this.InstanceName != null) 
      { 

       SearcherATAPISmartData = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData"); 
       foreach (ManagementObject queryObj in SearcherATAPISmartData.Get()) 
       { 
        if (queryObj["InstanceName"] != null) 
        { 
         if (this.InstanceName.ToUpper() != queryObj.GetPropertyValue("InstanceName").ToString().ToUpper()) 
         { 
          continue; 
         } 
        } 
        this.QueryObjATAPISmartData = queryObj; 
        break; 
       } 
     } 

}

、あなたがQueryObjATAPISmartData

よろしく、 Quyen

のいずれかの性質を得ることができます
関連する問題