从应用程序和程序中删除注册表项

时间:2019-05-01 17:31:48

标签: c# windows registry uninstall registrykey

我已经在这个主题上搜索了大约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”:

Registry app

一切都很好,但是我不能从注册表中删除该项目。这是我用来创建注册表的代码:

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();
    }
}

我无法从注册表中删除该项目。有人可以帮我弄清楚为什么这行不通吗?

0 个答案:

没有答案