样子:

支持系统:

Windows NT 5.x/6.x 32及64位所有系统。需.net framework 2.0运行环境

功能:

清理上述系统中冗余的Windows Installer补丁文件。有如下特点:

  • 高效扫描+清理,并有进度反馈
  • 可选择清理指定文件
  • 可排序
  • 可选择删除到回收站,或直接删除

说明:

类似工具有几个,其中我熟知的是smallfrogs大牛的【Windows Installer 冗余文件清理工具】(下文称WIC),事实上在这之前我一直就用他的工具进行相关任务(目前他的官网http://www.kztechs.com/不可访问,可以通过第三方站点获取该工具及其信息),之所以想到重新写一个这样的工具,原因有二:

  1. WIC不适用64位NT6.x操作系统。不是说不能运行,而是会得到错误的结果,就是会扫出并非冗余的msp文件,这个很要命,属于关键性问题。我想是因为WIC编写年代久远,可能作者本就没有考虑在新平台使用。而造成这个问题的技术层面的原因我想是由于64位NT6系统对32位程序的注册表访问做了重定向的缘故,也就是32位程序访问某些键的时候,实际上是访问到别的键。例如此类工具需要访问的【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches】,在64位系统上访问到的其实是【HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches】,关于这个问题,不少文章有讲解,在此不赘述。所以可能就因为这个原因,导致WIC在64位系统上访问到错误的键,又因为错误键下并不记录已安装的msp文件信息,最终导致WIC将大量并不是冗余状态的msp文件判定为冗余。
  2. WIC删除体验不好。这个谁用谁知道,就是删除一个文件前后共有2次MessageBox弹窗:删除前有1次询问,删除后有1次告知,而且是每一个文件都有两次弹窗,所以如果要删除10个文件,总共会遭遇10x2=20次弹窗,空格/回车俩表示压力很大。斗胆臆断,大牛在这个环节的处理有欠考虑啊。另外有用户表示还存在不能【全选/不选】的体验问题,这个倒其实好解决,得益于ListView控件(WIC应该不是.net程序,作者使用的编程框架下该控件可能不叫ListView,但我肯定它跟.net下的ListView都是调用同样的原生win32控件,spy++下显示为SysListView32)的能力,可以通过全选所有行+空格(或鼠标勾选)来达到全选/不选的目的,熟悉win系统的老鸟用户大概都知道类似的一些操作技巧,所以说这点不是问题。

就是以上两个原因让我有重造轮子的想法,所以可以说我对我这新工具的定位就是WIC的替代品,自然不存在WIC的问题,当然不排除我这工具也有其它问题,有句话叫什么来着,没有BUG的程序是什么也不做的程序。总之有赖用户的反馈,在此先行谢过。

另外我必须要说,即便WIC作为一个实现有些问题,但它的工作原理是了不起的,事实上我的工具也是基于大牛的冗余判定原理实现的,可惜现在他的官网不能访问,目前可以访问这里获知一些信息。再次郑重感谢smallfrogs大牛的研究和分享。另外要感谢:

  • 来自codeproject.com牛人的方案,它解决了ListView排序带原生标记(三角标记)的问题。排序容易,弄个自定义标记也不难,难的是系统原生标记
  • 各图标原作者。在此向猿友推荐一套高质量图标,作者似乎是个JP,程序UI向的设计师,作品真的很优质

工具地址:

http://pan.baidu.com/s/1i39w8Qh

望得到用户反馈,非常感谢!

-文毕-

【工具】清理Windows Installer冗余文件(支持64位NT6.x系统)的更多相关文章

  1. 使用WICleanup清理Windows Installer 冗余文件

    使用WICleanup清理Windows Installer 冗余文件 | 浏览:816 | 更新:2015-11-02 10:43 | 标签:Win7 Win10 1 2 3 4 5 6 7 分步阅 ...

  2. 给sql server2005打补丁报错:无法安装Windows Installer MSP文件

    给sql server2005打补丁报错:无法安装Windows Installer MSP文件 在我们安装完SQL2005数据库后,需要安装SP4补丁时,会出错:无法安装Windows Instal ...

  3. 字符转码开源库libiconv目前还不支持64位

    最新版的libiconv 1.14目前还不支持64位系统,只能编译出32位库. libiconv 1.14下载地址: http://ftp.gnu.org/pub/gnu/libiconv/libic ...

  4. 【电脑常识】如何查看电脑是32位(X86)还是64位(X64),如何知道硬件是否支持64位系统

    开始->运行->输入cmd确定->输入systeminfo 回车 待加载完成,就会看到如下信息(不同版本略有差异): 一.如何查看电脑是32位(X86)还是64位(X64) 方法2: ...

  5. 64位win8.1系统 运行 32位程序,文件夹路径是中文遇到问题

    今天有一位用户向我反应软件使用遇到问题. 用户使用的是64位win8.1系统,之前有很多用户使用64位的win8.1系统没遇到过问题. 远程协助了一下,差不多15分钟我试了几个办法没解决问题. 最后我 ...

  6. 判断电脑CPU硬件支不支持64位

    你可以在注册表中查看: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PROCESSO ...

  7. 检查DLL,EXE文件是64位或者32位的方法

    检查DLL,EXE文件是64位或者32位:输入corflags <assembly path>:

  8. [转]Windows10中Virtualbox没办法选择和安装64位的Linux系统

    本文转自:https://blog.csdn.net/strivenoend/article/details/78290325 明明在公司的WIN7系统中使用Virtualbox就可以安装64位的Ub ...

  9. VMware虚拟机下如何安装一个64位的win7系统

    原文地址:http://www.xitongcheng.com/jiaocheng/win7_article_21001.html VMware虚拟机软件可以在一台电脑上运行多个操作系统,一些网友想在 ...

随机推荐

  1. 页面动态加入<script>标签并执行代码

    在页面中动态追加html片段的时候,有时候动态添加的代码会含有<script>标签,比如用了一些模板引擎,或者你的代码有些复杂的时候.然而我们用DOM提供的innerHTML方式来添加代码 ...

  2. 关于Windows高DPI的一些简单总结

    我们知道,关于高DPI的支持, Windows XP时代就开始有了, 那时关于高DPI的支持比较简单, 但是从Vista/Win7 到现在Win8 /Win8.1, Windows关于高DPI的支持已 ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(十三):地图相关接口说明

    为了方便大家开发LBS应用,SDK对常用计算公式,以及百度和谷歌的地图接口做了封装. 常用计算: 用于计算2个坐标点之间的直线距离:Senparc.Weixin.MP.Helpers.Distance ...

  4. Bootstrap~Panel和Table

    回到目录 在我们对一个页面进行设计时,分块是必须的,没有一个网站是一栏而下的,除非你是在看小说,否则你的页面设计一定是分块的,即它由于多个panel组件,在bootstrap里叫到栅格系统,而在每行每 ...

  5. Lua标准库- 模块(Modules)

    Lua包库为lua提供简易的加载及创建模块的方法,由require.module方法及package表组成 1.module (name [, ···]) 功能:建立一个模块. module的处理流程 ...

  6. Atitit usrQBK1600 技术文档的规范标准化解决方案

    Atitit usrQBK1600 技术文档的规范标准化解决方案 1.1. Keyword关键词..展关键词,横向拓展比较,纵向抽象细化拓展知识点1 1.2. 标题必须有高大上词汇,参考文章排行榜,1 ...

  7. fir.im Weekly - Stanford 的 Swift 课程来了

    上周提过,Swift 的 Github 主页上已经有了 >>「Port to Android」,这周重点推荐一下 Stanford 的 Swift 课程. Developing iOS 9 ...

  8. WPF入门教程系列七——布局之WrapPanel与StackPanel(二)

    三. WrapPanel WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够是就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行. Orientation— ...

  9. 第五章 运输层(UDP和TCP三次握手,四次挥手分析)

    序言   通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅 ...

  10. CSS默认可继承样式

    前面的话 一直想总结出一份可继承样式的列表.常听说,颜色和字体是可继承的,盒模型样式是不可继承的,但其他样式呢?本文内容包括所有可继承的样式 [注意]关于样式的详细信息移步至此 常用可继承样式 col ...