从注册表项C#中搜索卸载



我想以编程方式卸载一些应用程序。我正在win注册表中搜索此路径:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall

搜索和卸载的代码如下:

public string UninstallCMD;
public bool SearchApp(string p_name)
{
string displayName;
RegistryKey key;

key = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionUninstall");
foreach (String keyName in key.GetSubKeyNames())
{ 
RegistryKey subkey = key.OpenSubKey(keyName);
displayName = subkey.GetValue("DisplayName") as string;

if (p_name.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
{
UninstallCMD = subkey.GetValue("UninstallString") as string;
return true;
}
}
}

我的问题是并不是所有的钥匙都读过了。我想要读取的密钥是{56DDDFB8-7F79-4480-89D5-25E1F52AB28F},但与中的另一个密钥一样被忽略(在该图中,您可以看到密钥被忽略(

没有{}的密钥被正常读取(即7-zip、VLC媒体播放器…(

我不知道为什么,但在重新编译解决方案后,一切都很好。

最新更新