1 个回答

要学会查爆栈,基本上大部分问题在爆栈上都回答过了,咱们只要照抄就行。关键字:C# installed softwares

随便找了一下:看看。咱们能想到的问题老外基本也都想到了。

把这个回答第一的答案抄过来,应该不会有事情吧。第一种是注册表:

string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
    foreach(string subkey_name in key.GetSubKeyNames())
    {
        using(RegistryKey subkey = key.OpenSubKey(subkey_name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}

或者更通用的办法是用WMI查询,这玩意还可以查询系统信息、磁盘信息之类的,功能非常强大。

ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
    Console.WriteLine(mo["Name"]);
}

最后,最好创建个账号,再给人家原答案点个赞。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进