我想知道该软件上次访问的时间是什么时候?我尝试使用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 :(得分: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);
}
答案 1 :(得分:1)
WMI中的日期和时间以DMTF日期时间格式表示,因此要转换为.Net DateTime,您必须使用ManagementDateTimeConverter.ToDateTime
方法。