zoukankan      html  css  js  c++  java
  • 【工具】清理Windows Installer冗余文件(支持64位NT6.x系统)

    样子:

    支持系统:

    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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Patches】,在64位系统上访问到的其实是【HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Patches】,关于这个问题,不少文章有讲解,在此不赘述。所以可能就因为这个原因,导致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

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

    -文毕-

  • 相关阅读:
    设计模式
    设计模式
    设计模式
    设计模式
    【Sublime】许可证 及 相关设置
    【Linux】跳过ubuntu grub2引导,使用Windows引导ubuntu
    【Linux】Windows 7下硬盘安装Ubuntu 14.10图文教程
    【ACM】连连看 hdu1175
    【算法】约瑟夫环 C++源代码
    【Java】配置JAVA的环境变量
  • 原文地址:https://www.cnblogs.com/ahdung/p/4523175.html
Copyright © 2011-2022 走看看