如何获取软件的上次访问日期

时间:2013-05-02 06:02:08

标签: c# asp.net wmi

我想知道该软件上次访问的时间是什么时候?我尝试使用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;
                }
            }

2 个答案:

答案 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方法。