public class InstallExe
{
public string UninstallString { get; set; }
public string DisplayName { get; set; }
public string DisplayVersion { get; set; }
public string Publisher { get; set; }
}
private static void ApplicationInstalled(List<InstallExe> list, RegistryKey key)
{
foreach (string keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
InstallExe ie = new()
{
DisplayName = subkey.GetValue("DisplayName") as string,
UninstallString = subkey.GetValue("DisplayIcon") as string,
DisplayVersion = subkey.GetValue("DisplayVersion") as string,
Publisher = subkey.GetValue("Publisher") as string,
};
list.Add(ie);
}
}
public void ApplicationInstalled(Dictionary<string, List<InstallExe>> dic)
{
if (dic == null)
{
dic = new();
}
else
{
dic.Clear();
}
// search in: CurrentUser
var CurrentUser = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
var CurrentUser_list = new List<InstallExe>();
dic.Add(nameof(CurrentUser), CurrentUser_list);
ApplicationInstalled(CurrentUser_list, CurrentUser);
// search in: LocalMachine_32
var LocalMachine_32 = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
var LocalMachine_32_list = new List<InstallExe>();
dic.Add(nameof(LocalMachine_32), LocalMachine_32_list);
ApplicationInstalled(LocalMachine_32_list, LocalMachine_32);
// search in: LocalMachine_64
var LocalMachine_64 = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");
var LocalMachine_64_list = new List<InstallExe>();
dic.Add(nameof(LocalMachine_64), LocalMachine_64_list);
ApplicationInstalled(LocalMachine_64_list, LocalMachine_64);
}
c# 获取程序安装/卸载列表
最新推荐文章于 2023-07-02 13:51:32 发布