Я искал эту тему около 2 часов, и все ресурсы, которые я нашел, говорят мне то же самое. Чтобы удалить реестр из списка приложений и программ Windows 10, используйте следующий код:
string InstallerRegLoc = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
RegistryKey homeKey = (Registry.LocalMachine).OpenSubKey(InstallerRegLoc, true);
RegistryKey appSubKey = homeKey.OpenSubKey("App name");
if (null != appSubKey) {
homeKey.DeleteSubKey("App name");
}
Я пробовал это, и у меня это просто не работает. Как мы видим здесь, у меня есть программа "Key Stats" в реестре:
Реестр приложений
Все об этом прекрасно работает, но я не могу удалить этот элемент из реестра. Вот код, который я использовал для создания реестра:
try {
string guidText = "50038998-0755-41a2-8ae9-f9719f04c703";
key = parent.OpenSubKey(guidText, true) ?? parent.CreateSubKey(guidText);
if (key == null) {
throw new Exception(String.Format("Unable to create uninstaller '{0}\\{1}'", @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", guidText));
}
Assembly asm = GetType().Assembly;
Version v = asm.GetName().Version;
string exe = "\"" + asm.CodeBase.Substring(8).Replace("/", "\\\\") + "\"";
key.SetValue("DisplayName", "Key Stats");
key.SetValue("ApplicationVersion", v.ToString());
key.SetValue("Publisher", "My Company");
key.SetValue("DisplayIcon", exe);
key.SetValue("DisplayVersion", v.ToString(2));
key.SetValue("URLInfoAbout", "");
key.SetValue("Contact", "");
key.SetValue("InstallDate", DateTime.Now.ToString("yyyyMMdd"));
key.SetValue("UninstallString", exe + " /uninstallprompt");
}
finally {
if (key != null) {
key.Close();
}
}
Хотя я не могу удалить элемент из реестра. Может кто-нибудь, пожалуйста, помогите мне понять, почему это не работает?