![](/img/trans.png)
[英]I'm using WMI in C# to get all the installed softwares but it doesn't show all the softwares only Microsoft ones
[英]Not able to get installed date and time of installed softwares in local machine using WMI and Registry
我试图在本地计算机上获取安装的软件以及带有时间戳的安装日期。 但是我使用属性InstallDate仅获得日期如“ 20140225”,我们还有一个属性InstallDate2,但是我为此获得了空值。 我想在c#.net中获取带有日期和时间的已安装程序。
谁能为此提供解决方案。
提前致谢。
我的代码使用注册表:
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
foreach (string skName in rk.GetSubKeyNames())
{
using (RegistryKey sk = rk.OpenSubKey(skName))
{
// we have many attributes other than these which are useful.
Console.WriteLine(sk.GetValue("DisplayName") + "- " + sk.GetValue("DisplayVersion") + " -" + sk.GetValue("InstallDate") + " -" + sk.GetValue("Publisher"));
}
}
}
Console.ReadLine();
这是使用WMI代码的:
ManagementObjectCollection moReturn;
ManagementObjectSearcher moSearch;
moSearch = new ManagementObjectSearcher("Select * from Win32_Product");
moReturn = moSearch.Get();
foreach (ManagementObject mo in moReturn)
{
Library.WriteLogMessageList("Name: " + mo["Name"].ToString() + "Date:" + mo["InstallDate"].ToString() + "Caption: " + mo["Caption"].ToString() + "Description: " + mo["Description"].ToString());
listPro.Add(new ListProgramProperties { Name = mo["Name"].ToString(), Caption = mo["Caption"].ToString(), Description = mo["Description"].ToString(), InstalledDate = mo["InstallDate"].ToString() });
// Console.WriteLine(mo["Name"].ToString()); //+ " || " +mo["InstallDate2"].ToString()
}
}
这可能是您需要的:
将mo["InstallDate"].ToString()
替换为mo["InstallDate"].ToString("yyyy-MM-dd h:mm tt")
您可以将这些格式中的任何一种指定为ToString()
的参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.