2013-05-02 21 views
3

我想找出什麼時候該軟件上次訪問?我試圖使用Win32_SoftwareFeature的LastUse屬性。但它會返回奇怪的值(不是日期)。下面是我使用的代碼:我怎樣才能得到該軟件的最近訪問日期

  string temp; 
      string date; 

      ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_SoftwareFeature"); 
      foreach (ManagementObject mo in mos.Get()) 
      { 
       if (mo["Name"] != null) 
       { 
        temp = mo["Name"].ToString() +" Version " +mo["Version"].ToString(); 
        lstTest.Items.Add(temp); 


        date = mo["LastUse"].ToString(); 
       } 
       else 
       { 
        break; 
       } 
      } 
+0

顯示你的代碼演示了這個問題(或者至少值你所得到)將讓人們回答...對於WMI通常更容易先用VBS樣品(如HTTP://www.activexperts。 com/admin/scripts/wmi/vbscript/0038 /)來查看對數據的期望。 – 2013-05-02 06:16:10

回答

2

您可以使用System.Management.ManagementDateTimeConverter解析日期時間。但是,如果日期時間是19800000 *,即使這樣也會中斷。因此解析日期時間的代碼將會是。

 string dateString = mo.Properties["LastUse"].Value.ToString(); 

     if (dateString.Substring(4, 2) == "00" || dateString.Substring(6, 2) == "00") 
     { 
      d = DateTime.ParseExact("19800101", "yyyyMMdd", null); 
     } 
     else 
     { 
      d = ManagementDateTimeConverter.ToDateTime(dateString); 
     } 
相關問題