经常碰到程序无法卸载, 就老是骂微软搞的什么安装方式,安装好了不能卸载.后来就打算研究一下windows是如何卸载程序的,一个程序安装完后留下了什么信息用于后面的卸载.研究对象win7 64位, 程序npviewinie.程序安装后生成的最主要的注册表项是在以下三个中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall     64位程序HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall   32位程序HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall    安装到当前用户的程序,安装时不需要管理员权限比如HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{43DCBFFE-81BE-4077-8F84-E32DB69C6979}{43DCBFFE-81BE-4077-8F84-E32DB69C6979}是程序的唯一ID,固定的,在{43DCBFFE-81BE-4077-8F84-E32DB69C6979}里有程序的概要信息,比如:DisplayName: npviewinie    程序名字,如果为空则不会显示在卸载程序列表里面InstallLocation: D:\Program Files\npviewinie\   程序安装位置UninstallString:  MsiExec.exe /X{43DCBFFE-81BE-4077-8F84-E32DB69C6979}   程序卸载命令如果安装信息全都放在这里那就简单了,可是微软搞的很复杂,它把这里当成索引,在其他地方放了其他的东西.其他地方保存了程序的相关信息,主要有以下几处:# => HKEY_CLASSES_ROOT\Installer\Components
# => HKEY_CLASSES_ROOT\Installer\Features
# => HKEY_CLASSES_ROOT\Installer\Patches
# => HKEY_CLASSES_ROOT\Installer\Products
# => HKEY_CLASSES_ROOT\Installer\UpgradeCodes# => HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components
# => HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
#=> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes# => HKEY_CURRENT_USER\Software\Microsoft\Installer\Features
# => HKEY_CURRENT_USER\Software\Microsoft\Installer\Products
# => HKEY_CURRENT_USER\Software\Microsoft\Installer\UpgradeCodes看吧,复杂吧,其中联系它们在一起的是那个唯一ID,而且是压缩过,比如刚才那个压缩成了EFFBCD34EB187704F8483ED26BC99697.其中有几个比较重要的需要提一下:在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\EFFBCD34EB187704F8483ED26BC99697\InstallProperties下LocalPackage: C:\Windows\Installer\1645971.msi这个C:\Windows\Installer\1645971.msi就是卸载包的位置,如果这个丢了(网上的精简系统方法可能会涉及到这个),那么卸载失败的机会就降了一半.另一半的机会在安装包还存在的情况.安装包的名字记录在:HKEY_CLASSES_ROOT\Installer\Products\EFFBCD34EB187704F8483ED26BC99697\SourceListPackageName: npviewinie_zh_1.6.6.msi位置记录在:HKEY_CLASSES_ROOT\Installer\Products\EFFBCD34EB187704F8483ED26BC99697\SourceList\Net1: E:\code\npviewinie\doc\Install\1.6.6\位置不正确不要急,因为它找不到就会让你选择位置的.总结:1. 不要随便动C:\Windows\Installer目录下的东西,虽然它越来越大2. 能用正常卸载最好3. 如果不能正常卸载,在强制卸载的时候,最好找到所有注册表然后一起删除,尤其不要忘了那个在C:\Windows\Installer下的文件.如果手动查找麻烦,那么建议只删除那个主要注册表,然后再重装一次软件,再删除.4. 上面关于强制卸载时用重装软件的建议有一个小问题,在重装软件之后,所有的注册表跟之前是一样的,但有个东西不一样,那就是在C:\Windows\Installer目录下的文件名,这样就导致之前的那个文件完全失去了联系.真的成为了孤魂野鬼.5.还有一种方法.我写了一个脚本来强制删除这些注册表和文件,需要会运行脚本的人,脚本使用附录有介绍.附录:1. npviewinie程序从注册表中获取的所有相关注册表和文件信息安装目录: D:\Program Files\npviewinie\
安装文件目录: E:\code\npviewinie\doc\Install\1.6.6\
卸载命令: MsiExec.exe /X{43DCBFFE-81BE-4077-8F84-E32DB69C6979}
主要注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{43DCBFFE-81BE-4077-8F84-E32DB69C6979}
卸载文件路径: C:\Windows\Installer\1645971.msi
安装包文件路径: E:\code\npviewinie\doc\Install\1.6.6\\npviewinie_zh_1.6.6.msi
其他相关注册表:
HKEY_CLASSES_ROOT\Installer\Features\EFFBCD34EB187704F8483ED26BC99697
HKEY_CLASSES_ROOT\Installer\Products\EFFBCD34EB187704F8483ED26BC99697
HKEY_CLASSES_ROOT\Installer\UpgradeCodes\D970B879D13D71644B1842FAEEAD2150
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\D970B879D13D71644B1842FAEEAD2150
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\EFFBCD34EB187704F8483ED26BC99697
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\00DA8AC25B115D14E82A2D938699DD78
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\0C86DB1A2A425AA4ABDD342F238B3D58
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\439BCBF3DBE6C264F8A83C86B199B574
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\7B6F588AB8E7D4F4EB92A12CB7A8EB7C
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\8BAFF9E2E57CD2E409B6A3B513EAABD0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\A02CBC3755662E04EA045A3ECE68D2AF
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\AD2FEFFDA9B68E44AA18B440BA31F000
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\CC166F7311E02514B80CC34BF06B5DE82.脚本介绍脚本下载地址: http://pan.baidu.com/s/1c0rMeuG其中:list_all_installed_program.rb 可以列出所有安装的程序的名字check_installed_program_health.rb 程序名    可以检查程序是否可以卸载或程序是否还存在check_installed_program_health.rb -v 程序名 可以查看程序的相关信息check_installed_program_health.rb -d 程序名 可以删除程序的相关信息,包括程序目录,卸载包,所有注册表

  

转载于:https://www.cnblogs.com/mypsq/p/7171771.html

C++对windows控制面板的操作相关推荐

  1. 2021-01-09:Microsoft Word2019 提示:很抱歉此功能看似已中断,并需要修复。请使用Windows控制面板中的“程序和功能”选项修复Microsoft Office

    Microsoft Word2019 打开后总是出现这个问题,弹出这个提示窗口: 很抱歉此功能看似已中断,并需要修复.请使用Windows控制面板中的"程序和功能"选项修复Micr ...

  2. 很抱歉此功能看似已中断,并需要修复。请使用Windows控制面板中的“程序和功能”选项修复Microsoft Office

    Microsoft Word2016 打开后出现这个问题: 很抱歉此功能看似已中断,并需要修复.请使用Windows控制面板中的"程序和功能"选项修复Microsoft Offic ...

  3. 理光复印机扫描到windows共享文件夹操作步骤

    理光复印机扫描到windows共享文件夹操作步骤 问题描述:理光复印机扫描到windows共享文件夹操作步骤 步骤: 1.在windows创建共享文件夹. 2.设置[高级共享设置] 3.安装SMB协议 ...

  4. Windows系统安全相关操作——值得拥有

    Windows中常见的目录 //这个目录下存放着这个用户开机启动的程序 C:\Users\xie\AppData\Roaming\Microsoft\Windows\Start Menu\Progra ...

  5. Windows注册表操作基础代码

    Windows注册表操作基础代码   Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<assert.h> #include< ...

  6. 很抱歉 此功能看似已中断 并需要修复。请使用Windows控制面板中的“程序与功能”选项修复

    Word2016出现此功能看似已中断,并需要修复怎么办?有些win10用户在装上office2016后,每次打开word文档都会出现很抱歉,此功能看似已中断,并需要修复.请使用Windows控制面板中 ...

  7. Windows的拖放操作使用方法

    Windows的拖放操作使用方法 转载于:https://www.cnblogs.com/time-is-life/p/5788121.html

  8. 正版软件 |Windows 10 家庭版操作系统软件 终身授权

    正版Windows 10 家庭版操作系统,一款非常适合家庭用户的操作系统,它综合了多个功能和特性,提供更好的用户体验和更高的可靠性,是完美地适应于家庭和教育高校等各种使用场景. Windows 10 ...

  9. Windows Server网络操作系统安装

    网络操作系统的安装 项目一:Windows Server网络操作系统安装 子任务1:认知网络操作系统 1>在搭建服务器时,我们首先需要了解到应该安装什么操作系统,不同的操作系统应用的环境是不一样 ...

  10. Ubuntu 10.10与局域网中的Windows文件共享详细操作步骤

    我在ubuntu里共享文件夹的时候出现了一个问题: 建立共享文件出现如下提示(就是正文里的ubuntu安装完共享服务之后设置共享权限的时候时候下方出现的问题) Failed to execute ch ...

最新文章

  1. ECLIPSE 添加插件3种方法
  2. LINUX 下 WEBlogic集群的搭建-01
  3. fmt-重新格式化段落
  4. Struts2 访问web元素
  5. 015_JavaMail
  6. glance was not installed properly
  7. Angular Effects.ofType的工作原理
  8. DLL导出类和导出函数
  9. SharePoint2010网站备份还原简单介绍
  10. 程序员面试金典 - 面试题 08.10. 颜色填充(BFS/DFS)
  11. java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?
  12. 计算机网络 --- 数据链路层CSMA/CD协议
  13. 服务器raid1重装系统,做软RAID1 重装系统后数据会丢失吗
  14. JavaScript:工具库MyTools.js(自用不断填充····)
  15. silverlight 碰撞检测
  16. 浅谈P2P终结者原理及其突破
  17. 游戏测试和软件测试哪个好点?
  18. OCX控件安装过程中遇到的问题及解决方法
  19. 《笑谈反病毒和病毒技术》
  20. Python基础 —— 输入输出

热门文章

  1. jupyter notebook 拒绝连接 以及 查 IP
  2. MFC对话框标题栏颜色自绘,标题栏由过渡色组成,自绘关闭按钮
  3. 图鸟小程序+前后端开源项目
  4. 资产证券化ABS+区块链
  5. 1461错误,nbsp;mysql_stmt_prepa…
  6. STM32控制步进电机运三种方式控制源码详解:主从定时器+编码器闭环+GPIO模拟(基于【TB6600】【DRV8825】驱动器)
  7. 小样本(小于30)假设检验与置信区间
  8. datax(13):源码解读Column-datax中的数据类型
  9. 遇到问题--python--BLOB/TEXT column 'code' used in key specification without a key length
  10. 软件企业研发人员激励机制研究