代码
/// <summary>
/// Windows信息
/// </summary>
public partial class WindowsInfo
{
private static List<AppInfo> GetInstalledAppInfos()
{
List<AppInfo> appInfos = new List<AppInfo>();
string SameApp = "";
void AddApp(RegistryKey subkey, string keyName)
{
string displayIcon = subkey.GetValue("DisplayIcon") as string;
if (string.IsNullOrWhiteSpace(displayIcon)) displayIcon = string.Empty;
string installLocation = subkey.GetValue("InstallLocation") as string;
if (string.IsNullOrWhiteSpace(installLocation)) installLocation = string.Empty;
string displayName = subkey.GetValue("DisplayName") as string;
if (string.IsNullOrWhiteSpace(displayName)) displayName = string.Empty;
string uninstallString = subkey.GetValue("UninstallString") as string;
if (string.IsNullOrWhiteSpace(uninstallString)) uninstallString = string.Empty;
var app = new AppInfo(displayName, displayIcon, installLocation, keyName, uninstallString);
if (appInfos.Exists(a => a.ToString() == app.ToString()))
{
SameApp += app.ToString() + "\r\n";
}
else
{
appInfos.Add(app);
}
}
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false))
{
foreach (String keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
AddApp(subkey, keyName);
}
}
using (var key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false))
{
foreach (String keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
AddApp(subkey, keyName);
}
}
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall", false))
{
foreach (String keyName in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(keyName);
AddApp(subkey, keyName);
}
}
return appInfos;
}
}
/// <summary>
/// APP信息
/// </summary>
public class AppInfo
{
public AppInfo(string name, string displayIcon, string installLocation, string productCode, string uninstallString)
{
DisplayName = name;
DisplayIcon = displayIcon;
InstallLocation = installLocation;
ProductCode = productCode;
UninstallString = uninstallString;
}
/// <summary>
/// 显示名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 启动路径
/// </summary>
public string DisplayIcon { get; set; }
/// <summary>
/// 安装位置
/// </summary>
public string InstallLocation { get; set; }
/// <summary>
/// 产品代码或名称
/// </summary>
public string ProductCode { get; set; }
/// <summary>
/// 卸载字符串
/// </summary>
public string UninstallString { get; set; }
public override string ToString()
{
return $"Name:{DisplayName}---Icon:{DisplayIcon}---Loc:{InstallLocation}---Code:{ProductCode}---UnStr:{UninstallString}";
}
}
例子
var installedAppInfos = WindowsInfo.GetInstalledAppInfos();
参考文章来源:https://www.toymoban.com/news/detail-643617.html
c#获取系统已安装软件列表(32,64位均可使用)_zhoyuwo的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-643617.html
到了这里,关于【C#】获取已安装的应用名称、启动路径、安装位置、产品代码、卸载字符串等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!