从注册表中删除程序-----------转载于 http://bbs.krshadow.com/thread-54432-1-1.html

来源:互联网 发布:linux系统启动自检 编辑:程序博客网 时间:2024/04/27 06:56

有时候我们安装在 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。