に示すとおりにプログラムリストの追加と削除取得私が追加/削除プログラムのリストを取得するには、このアプローチを試してみました、それはまだ正確なリストに時におけるWindowsのC#Framework 3.5の(未4.0)
ルックを与えるものではありません3つの場所でレジストリ
installedSoftware.AddRange(GetInstalledSoftware(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"));
installedSoftware.AddRange(GetInstalledSoftware(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"));
installedSoftware.AddRange(GetInstalledSoftware(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"));
コード:
private List<string> GetInstalledSoftware(string regKey)
{
var installedSoftware = new List<string>();
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regKey))
{
if (key != null)
{
foreach (string subkey_name in key.GetSubKeyNames())
{
using (RegistryKey subkey = key.OpenSubKey(subkey_name))
{
object displayName = subkey.GetValue(ToolResources.DisplayName);
if (displayName != null)
{
installedSoftware.Add(displayName.ToString());
}
}
}
}
}
return installedSoftware;
}
これは4.0解決策であるが、3.5
では動作しませんC#: How to get installing programs exactly like in control panel programs and features?
何が欠けていますか?