欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

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

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

已发表 2006年7月23日 21:31 作者 alx-zj

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2006年7月25日 11:11 by taylor

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

似乎像Vs.net 2003这样的基于windows installer的程序会在以下两个位置都记录键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
和HKEY_CLASSES_ROOT\Installer\Products
2006年8月3日 21:30 by ahpeng

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

我的看法,如果要手动卸载某个应用软件,不要去马上去动注册表,比较稳妥的方法可以是:
1.对于XP来说,能否借助系统还原进行恢复?
2.能否重新安装应用软件,再进行删除?
3.有没有卸载工具,可以用来卸载出错的应用软件?
4.实在不行,还可以有绝招,就是在一台干净的参考计算机上安装该应用软件,并用regsnap监控注册表键值的变化,然后对照删除所有找到变化的注册表键值。
5.当然,操作之前,肯定要先备份注册表。
2006年8月20日 17:04 by lpclimber

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

很好的总结,谢谢分享!
2008年8月28日 15:59 by satan!!!

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

哦~~~原来是这样啊...以前我都不知道,谢谢分享!

说说您的看法?

(必填) 
必填 
(必填)