代碼
/// <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>
/// 啟動(dòng)路徑
/// </summary>
public string DisplayIcon { get; set; }
/// <summary>
/// 安裝位置
/// </summary>
public string InstallLocation { get; set; }
/// <summary>
/// 產(chǎn)品代碼或名稱
/// </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();
參考文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-643617.html
c#獲取系統(tǒng)已安裝軟件列表(32,64位均可使用)_zhoyuwo的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-643617.html
到了這里,關(guān)于【C#】獲取已安裝的應(yīng)用名稱、啟動(dòng)路徑、安裝位置、產(chǎn)品代碼、卸載字符串等的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!