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

解决方案 »

  1.   

    大小就是EstimatedSize吧使用频率你点一下添加删除程序那个对话框里面的使用频率有介绍的
    什么样的算低什么样的算高
    自己转化下
    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));//在这里获得大小和使用频率
        }
    }
      

  2.   

    大小确实是EstimatedSize,但有这个信息的软件比较少,我看360软件管理里面,统计的比较全,不知道它是怎么做的,关于这个使用频率,windows有监测软件程序次数的程序,我不知道怎样获取它的检测结果?