![](/img/trans.png)
[英]In C# .NET 2.0 or greater, how to get list of all installed applications on Vista PC
[英]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.