从注册表中删除程序,不要忘记这两个地方

    有时候我们安装在 Windows 系统中的应用程序因为出错而无法卸载,需要我们手动将其删除,应该如何做呢?此时我们应该先从注册表中将应用程序的注册信息删除,然后再从资源管理器中手动删除应用程序的安装文件夹。那么,这个注册表项是哪里呢?可能不少人都知道,是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall。
    但是,当我们把 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中的所有注册表项都浏览过一遍后,却发现在控制面板中的“添加删除程序”列表中的应用程序好像并没有全部显示在这里,例如我们常用的 Office 系列就找不到相应的注册表项。这是怎么回事呢?
    原来,除了 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 之外,还有其它两个注册表项用来保存已注册的应用程序信息,它们就是 HKEY_CLASSES_ROOT\Installer\Products 和 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products。如果我们把这三个注册表项定义的全部应用程序都加在一起,就是我们在“添加删除程序”列表中看到的所有程序了。
    HKEY_CLASSES_ROOT\Installer\Products 和 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products 主要用来保存那些基于 Windows Installer 安装的应用程序,例如 Office;而 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 则主要用来保存那些基于其它安装程序的应用程序,例如常见的基于 InstallShield 安装的应用程序。因此,如果我们需要手动删除应用软件时,如果在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中找不到相应的注册表项,请务必再检查一下 HKEY_CLASSES_ROOT\Installer\Products 和 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products。

原文地址:https://www.cnblogs.com/dongzhiquan/p/1994568.html