日期:2014-05-18  浏览次数:20964 次

C#获取软件列表
我想用C#获取计算机上所有安装软件的列表,现在通过读注册表(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall)能够获得,但是软件的大小、使用频率不知道怎么获取,有没有高手解决一下啊?

------解决方案--------------------
大小就是EstimatedSize吧

使用频率你点一下添加删除程序那个对话框里面的使用频率有介绍的
什么样的算低什么样的算高
自己转化下

C# code

RegistryKey hklm = Registry.LocalMachine;
RegistryKey uninstall = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\");
foreach (string site in uninstall.GetSubKeyNames())
{
    RegistryKey sitekey = uninstall.OpenSubKey(site);
    if (sitekey == null)
    {
        Console.WriteLine(sitekey + "-----" + "IS NULL");
        continue;
    }
    foreach (string s in sitekey.GetValueNames())
    {
        Console.WriteLine(site + "-----" + s + ":" + sitekey.GetValue(s));//在这里获得大小和使用频率
    }
}