No comments have been added to this post yet.

精简适合自己的MS Office

而对于我们常用的office软件,很多功能都是我们平时用不到,比如office 2003中的DOT NET可编程性支持,一般的用户是不需要的,如果我们可以像nlite 精简windows xp那样,去掉office软件中不太常用的组件,就可以把windows xp ,office system 还有其他的一些常用的软件做到一张光盘上,非常方便。

下面我就来讲解如何600M大小的微软的office 软件精简到仅仅50M左右,并且保留了常用的功能,前面内容是参考了网友小狂毛和FENGYEZI的工作。

制作精简版office,分为几个步骤:

  1. 下载完全版本的管理员补丁和ork工具以及编辑msi文件的orca工具,sysinternal公司的filemon工具
  2. 使用管理员模式把office安装到某个文件夹下
  3. 集成office的管理员补丁
  4. 使用ork工具中的自定义安装工具对office软件进行定制,仅仅保留常用的功能,得到mst文件
  5. 用orca修改msi,把mst文件信息写入msi中
  6. 删除多余文件
  7. 测试

前面5个步骤都是有章可循的,只有最后一个步骤6是最繁琐的容易出错的,我使用excel来辅助,使得这个步骤也非常容易,下面就是具体的操作过程。我以office 2003 简体中文版为例来说明,对于office 2000 和office xp来说,过程都是完全一样的,仅仅是集成的补丁不同。

删除多余文件

经过前面的一系列步骤后,假设 现在D:\office 目录下包含了office 2003 sp1 的所有文件,还没有去掉安装程序中我们不需要的文件,如何找出哪些是我们需要的文件,哪些是我们所不要的文件呢?也就是要确定Office 2003“减肥”之后,要保留哪些文件。

  1. 获取精简版office的文件列表

    1. 首先修改原来的D:\office\pro11.msi的文件名字为pro11bak.msi,然后把上一步骤得到的D:\office\pro11mini.msi文件改名为pro11.msi,这样是为了可以使用setup.exe执行office的安装,如果不使用setup.exe的话,也可以不改名。
    2. 这时候,就是filemon工具发威了。运行filemon,首先使用file菜单下的Capture Event 取消文件监视,然后用edit菜单下的Clear Display清除已经记录的文件操作,选择Volumes菜单下的Volume D,表示仅仅监视D盘的文件操作。执行“file-〉Capture Event”,重新启动文件监视。
    3. 执行D:\office\setup.exe,安装精简后的office,选择全部安装,把我们所要求的功能在系统中安装一遍,看看到底哪些文件被安装到系统中去了。为了减少filemon监视的数据量,安装的时候不要把office安装到D盘。
      经过硬盘呼啦啦的一阵狂转之后,你已经得到了安装的“减肥”的Office 2003。
    4. 切换到filemon,执行“file-〉Capture Event”,关闭文件监视。
    5. 现在我们就根据filemon的记录来分析Office 2003安装程序在安装过程中到底到底需要哪些文件,这些文件就是需要保留的。filemon的显示如图精简office图一 中所示,执行“file->Save As”,选择存储的log文件名为filemon.txt。
    6. 运行excel,把刚才存储的filemon.txt拖入excel中,可以看到filemon.txt在excel中分成整齐的7列(A-G),其中文件名字在E列,保留第5列也就是E列,删除所有其他的列,这样仅仅剩下了需要处理的文件名字,可以从图精简office图二 中看到,重复的名字很多,用excel过滤重名非常简单,执行“Data->Filter->Advanced Filter”,选择其中“Unique record only”复选框,执行过滤,选中过滤的结果,复制粘贴到一个文本文件中,这样就得到了office精简版安装时候所需要的全部文件的列表。
  2. 前面的步骤还仅仅是在当前的操作系统安装office精简版的文件列表,不同的操作系统(2000,XP,2003),对于文件的需求可能会有变化但是相差不大。一般来说,能满足2000操作系统安装的,大部分都可以满足XP或者2003上的安装,因为XP或2003提供组件比2000要多要新。所以我们需要在我们可能用的不同的操作系统系统上分别完成一次前面的1的安装过程并获得文件列表。
  3. 用excel合并前面的获得的几个文件列表,或者用ultraedit的“File->Sort->Advanced Sort”来去除掉合并的列表中重复的文件名字。
  4. 用一个批处理文件来处理最后的office 精简版的文件列表,从而得到最终的office精简版。
    目标是从D:\office复制office精简版需要的文件到E:\officemini\office中,精简版的文件列表为officefilelst.txt

[code lang=”cpp”] rem 需要的创建目录结构
xcopy d:Office E:officeminioffice /T
for /F %%i in (officefilelst.txt) do copy %%i e:officemini%%~pnxi[/code]

执行过程如图精简office图三所示。执行完成后,E:\officemini\office中就是打了sp1 补丁的精简版的office 2003 。

测试

在不同的全新安装的操作系统进行测试,看看是否有缺少文件的情况发生,经我测试,一般不会缺少文件了。

怎么样,你现在可以给你的Office 精简了吧。可以打造适合自己的精简版的office。

12 Comments

  1. James.liu Comments @ 10:36:21 on 2005-08-04

    动手能力比较差,你做的能完成什么功能?比如包含word,excel。。
    能否让像我一样的人下载呢?

  2. lyh728 Comments @ 11:08:36 on 2005-08-04

    这里仅仅讨论方法,不考虑下载阿

  3. SMileR Comments @ 07:41:44 on 2005-09-14

    不错啊,在这里能看到这样的文章。

  4. googoz Comments @ 11:01:54 on 2005-09-15

    你好,我想请教你怎么把office的各个组件分离出来。我以前在网上下载过一些精简了的office,不过有些高级功能却不能使用,我想把word,excel,等,逐个分离出来得道单独的版本,不知道能不能帮帮我,先谢谢了。

  5. lyh728 Comments @ 14:46:25 on 2005-09-15

    这个帖子就是做这个阿

  6. sgzof Comments @ 13:02:18 on 2005-10-02

    ork工具以及编辑msi文件的orca工具,sysinternal公司的filemon工具 ,在哪里有得下载?

  7. lyh728 Comments @ 17:49:31 on 2005-10-04

    ms 和 sysinterl的网站阿,或者google 一下

  8. GFH Comments @ 01:21:09 on 2005-10-09

    谁可以做个ACCESS2000的独立版给共享?

  9. 11 Comments @ 18:27:41 on 2005-12-24

    rem 需要的创建目录结构
    xcopy d:Office E:officeminioffice /T
    for /F %%i in (officefilelst.txt) do copy %%i e:officemini%%~pnxi

    这个语法有问题!!!!!!!!!!!!!!!!

  10. lyh Comments @ 15:56:26 on 2005-12-27

    路径分割符丢了

  11. hjzhang Comments @ 16:08:37 on 2006-05-02

    你好,我是hjzhang
    我在寻找reg2inf时候找到楼主的(et8、d4e),非常崇拜楼主的水平
    由于个人偏好制作简单的绿色软件以及精简XP,所以非常需要一款趁手的reg2inf
    工具,由于重写没那个水平,而楼主的已经完善的差不多了,可惜这几个论坛经常不开放
    不知道能否麻烦您把Reg2Infsrc、Reg2infgui就是那个源代码发给我一份,不胜感激。
    mrhzhang@gmail.com

    hjzhang@email.com

    hjzhang.ys168.com留言。
    THX

  12. dingling Comments @ 20:30:47 on 2006-06-05

    xcopy d:Office E:officeminioffice /T
    for /F %%i in (officefilelst.txt) do copy %%i e:officemini%%~pnxi
    能否解释解释这个语法!?
    看不懂哪?!??