繁体   English   中英

如何使用C#获取Windows所有已安装的应用程序

[英]how to get all installed applications of windows using c#

我尝试使用HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall来将所有应用程序安装在计算机中,并获取应用程序列表,但是我需要获取Windows的添加或删除程序功能中列出的所有应用程序。

请帮助我获得此解决方案。

我认为您可以使用WMI,如下所示:

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

另一个可能性是对32位应用程序使用SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall,对64位应用程序使用HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Wow6432Node \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall并合并列表,我认为您的代码应类似于:

string registry_key_32 = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
string registry_key_64 = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall";

using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key_32))
{
    foreach(string name in key.GetSubKeyNames())
    {
        using(RegistryKey subkey = key.OpenSubKey(name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}
// And...
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key_64))
{
    foreach(string name in key.GetSubKeyNames())
    {
        using(RegistryKey subkey = key.OpenSubKey(name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM