|
前言:
我来绿软本来是为了学习技术的,没想到自己反倒成了教技术的,呵呵,我一共才绿过几个软件,总是觉得自己的方法很笨,不敢说自己是在写教程,只敢说写一些大多数人都知道的常识。其实我在发文章的时候,一般是一边发一边脸红的,因为怕自己写的东西被高手们笑话,但是回贴中,支持的人占了大多数,时间一长自己也就慢慢的大胆起来。不过我还是认为自己用的方法是很笨的,我总是想知道别人是如何制作绿软的,可惜,很少看到关于制作绿软的文章,在这里只看到过老大的一篇教程。我希望大家多写一些制作绿软的经验,互相交流学习:) 我制作绿软所用的方法只有几招,都写在前面的一些文章中了,这可能是最后一篇了吧,在这篇文章中,我准备配上大量图片,把自己制作的详细过程全写出来,希望大家多多指教。这篇文章有可能要拖很长时间写完,请耐心等待。另外,写这篇文章除了累以外,还需要一些勇气的,实在是怕别人笑话我用的方法太笨,汗一个先。。。 正文: 制作Front Page 2000迷你版时我轻敌了,Front Page XP我都绿过,Front Page 2000就绿不出来?没想到最后失败了。失败的原因和Front Page XP差不多,因为有一个键是安装程序根据不同的硬件而变化的,制作出来的绿软在同一台电脑上的不同系统可以运行,但是换一个机子就无法运行,这样做出来的迷你版无法通用,也就失去了发表的价值,只能算是半成品,供在同一台电脑上使用。不过制作的过程是值得写的。我觉得绿化软件最难的就是微软的东东,它总是和系统紧密相连,绿化难度大一些,所以用到的方法也要多一些,这样写的文章很有代表性。下面我介绍一下制作的详细过程。 绿化时选择win98系统进行绿化,因为win98在更换备份系统时最方便。关于98系统的备份与还原,请参考我以前写的一篇文章《关于win98的备份》。 首先正常安装一个98系统。然后把系统文件夹导出到d盘,这是为了方便制作。在制作的时候把一些临时文件保存在桌面或“我的文档”中,在更换系统的时候不会丢失,相当方便的。 接下来替换两个文件。一个是notepadEx,这是视窗的记事本替换程序。视窗自带的记事本只能打开小于60kb的文件超过60k的文件就需要用写字板来打开,在打开前要提问一下,这是很烦人的,所以要找掉它。我在网上找了很长时间,终于找到这个记事本替换程序,它可以打开超过60kb的文件,在得到它的那天晚上我一高兴拿它写了一个44MB的纯文本文件,呵呵,爽死了。而且这个程序还可以用ctra+A组合键进行“全选”,还有“搜索”,“替换”等功能,比98自带的记事本强多了。只是有一点遗憾,这个小程序在启动时比98记事本慢了零点几秒,不爽。这个小程序在网上有的是,随便搜索到,然后直接复制到windows文件夹中,替换掉原来的notepad.exe即可。 第二个文件是winme系统的regedit.exe。这个是视窗的注册表编辑器,winme自带的注册表编辑器比win98的多一个“收藏夹”功能,把常用的键添加到收藏夹,需要的时候可以直接打开,非常方便,所以要把winme系统的regedit.exe替换掉win98的regedit.exe。这样在98中编辑注册表的时候也可以用收藏夹功能了。 替换掉注册表编辑器以后再把下面的内容导入注册表: REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites] "收藏夹"="我的电脑\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit\\Favorites" "CLSID--1"="我的电脑\\HKEY_CLASSES_ROOT\\CLSID" "CLSID--3"="我的电脑\\HKEY_LOCAL_MACHINE\\SOFTWARE\\CLASSES\\CLSID" "USER__Software"="我的电脑\\HKEY_CURRENT_USER\\Software" "user__Microsoft"="我的电脑\\HKEY_CURRENT_USER\\Software\\Microsoft" "USER__Windows"="我的电脑\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion" "MACHINE__SOFTWARE"="我的电脑\\HKEY_LOCAL_MACHINE\\SOFTWARE" "MACHINE__Microsoft"="我的电脑\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft" "MACHINE__WINDOWS"="我的电脑\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion" "03--TypeLib"="我的电脑\\HKEY_LOCAL_MACHINE\\Software\\CLASSES\\TypeLib" "HKEY_USERS"="我的电脑\\HKEY_USERS" 这是注册表编辑器中的“收藏夹”的快捷方式,把上面的内容导入注册表以后,在注册表编辑器中点击收藏夹时会出现如下图的菜单:
此主题相关图片如下:

图中收藏的几个键是制作绿软时常用的几个键,如果想查找哪个键就直接点击,省去了在左侧列表中查找的麻烦。其中clsid--1和3是指第一根键中的clsid和第三根键中的clsid,user是指第二根键,machine是第三根键,我里只是举个例子,大家可以根据自己的习惯命名。 接下来保存一份全新的系统注册表信息。就是指未安装任何软件的注册表状态。在这里可以只保存一个“我的电脑”,也可以分开保存六个根键。“我的电脑”中就包含了全部的注册表信息,但是在恢复的时候速度慢,分开保存是为了在恢复的时候速度可以快一些。下面是我保存的几个分支:
此主题相关图片如下:

其中00就是“我的电脑”,是注册表的全部信息,起名为00只是为了少打几个字,呵呵。01就是第一根键,01clsid就是第一根键中的clsid键。以此类推。 到这里准备工作就做得差不多了,下面把系统备份一下。打开文件夹选项,选择“查看所有文件”,再打开c:\windows文件夹,在里面找到win386.swp,这个是系统的虑拟内存文件,带着它无法复制系统,所以要排除它,在它上面点一下鼠标,然后选择编辑菜单中的“反向选择”这样整个文件夹中除了这个文件以外的所有文件都选中了,然后再在这些文件上点右键,选择“复制”。然后退到c盘根目录,新建一个win0的文件夹,把刚才复制的所有内容粘贴到这个文件夹中。这样就备份了系统,再把这个文件夹复制几份分别命名为win1,2,3,……留着以后用:)为了复制文件省时间,可以把系统文件夹中的help,temp,media,java,等文件夹删掉,再把fonts文件夹中的黑体,仿宋2312,偕体2312三个字体文件删除,这样处理后的系统在180M左右,复制文件时可以省些时间。 准备工作做完了,下面正常安装Front Page 2000,安装时选择最小化安装。安装时需要重启一次电脑。安装结束以后首先备份一下注册表。按上面备份全新注册表的几个键,再备分一份安装后的注册表信息。然后打开C:\Program Files,找到Common Files和Microsoft Office两个文件夹,把它们复制一份做备份。接下来就开始绿化工作 绿化的第一步,首先要判断一下,这个软件是否可以制作出迷你版,就是看看它能不能通过非正常安装启动。 打开开始菜单,选择关闭系统,选择“重启计算机并切换到MS-DOS方式”,在dos提示符下依次输入下面的命令: cd..(回车)[退到c盘根目录] ren windows w[把windows文件夹更名为w] ren win0 windows[把备份的系统win0文件夹更名为windows] 然后按ctrl+alt+del三个键热启动电脑。重新启动以后就进入了刚才备份的系统中,相当于全新的,未安装Front Page 2000的系统。第一步,把刚才备份的“正常安装”的注册信息导入系统,然后打开C:\Program Files\Microsoft Office\Office文件夹,直接启动一下Frontpg.exe,程序提出需要有windows 安装服务程序才能动行。
此主题相关图片如下:

windows 安装服务就是Windows Installer,许多程序都需要依赖它安装,在winxp系统中已经集成了它的2.0版本,但是98中没有,所以要先把这个问题解决。 上面的一步是把正常安装的所有信息导入到一个全新的系统中,里面包括所有的注册表键值,然而Front Page还是无法启动,那么只剩下“缺少文件”这一个可能了。到底需要哪个文件呢?在这里就要用“笨方法”查找一遍了。(在安装office的时候如果用Regsnap4一类的软件给系统做一个快照,可以很简单的看出安装时向系统中写入了什么文件,但是我这里介绍的是如何用手工查找文件,方法虽然笨了些,但是可以锻炼手工查找的能力,) 一般时候安装程序向系统文件夹写文件都写在windows或system文件夹下。现在猜测可能缺少文件才无法启动,那么就去原来正常安装office的系统中找一下文件,看看可不可以启动程序。
一般情况下,安装程序向系统文件夹写文件都写在windows或system文件夹中。上一节中猜测可能缺少文件程序才无法启动,现在试着把正常安装时,向系统中写入的文件提出来,放到新系统中测试一下,看看能否启动。那么应该如何把向系统中写入的文件单独提出来呢?
打开刚才更名为w的原来正常安装的系统,把里面的system文件夹复制一份(这是我的习惯,虽然它可能再不需要了,但还是要做好备份的,这样任何时候都可以返回原系统)。然后进入system,把里面的所有文件选中(不要选择文件夹),然后在它们上点右键,选择“剪切”,再粘贴到正常在使用的系统中的system中。由于两个文件夹的文件几乎一样,所以在粘贴以后系统会提示“此文件夹中已经有一个名为***的文件”询问是否替换,
此主题相关图片如下:

这时按住键盘上的alt+N组合键,就可以跳过同名的文件。当然,两个文件夹中同名的文件有很多,一个一个的按是按不过来的,所以要按住alt+N键不放,这样就可以自动的跳过所有同名的文件,但是有时候遇到一些重要的系统文件时,系统会提示“无法替换***,指定的文件正被windows使用”
此主题相关图片如下:

遇到这样的情况时,用鼠标点一下“确定”,然后再接着按alt+N跳过同名文件。通过这一步,就可以把两个文件夹中同名的文件留在原处,只把安装office的系统比正在使用的系统多出的文件移动到新系统 ,而这些多出的文件就是安装office时,向系统中添加的文件。下面打开office的安装目录,找至frontpg.exe,启动一下,程序可以正常启动,这就说明Front Page可以通过非正常安装来启动,可以制作出迷你版来。接下来的问题就是如何查出Front page究竟需要哪个文件。
上一步只把正常安装office时,向系统中写入的文件移动到新系统中,但是到底移动的是哪个文件,移动了多少个文件一点也不知道,下面就想办法把它查出来。你想一下,用什么方法可以查出来???呵呵,不要以为很困难,简单得要命。返回正常安装office的系统中的system文件夹,刚才不是把里面的文件剪切到新系统中了吗?这时把窗口移到最底部,然后在空白处点右键,选择“撤消移动”即可,(注意,在前面移动文件以后,只可以打开什么程序,尽量不要做“剪切”,“复制”一类的操作,要不然就不能用撤消了)
此主题相关图片如下:
呵呵,系统会把刚才剪切的文件移动回原来的位置,但是撤消移动的文件会自动的排列在原来文件夹中的文件后面,就可以轻松的查出安装office时向系统中写入了什么文件,呵呵。。。得意中。。。
此主题相关图片如下:

既然已经知道安装office时向系统写入了什么文件,那么在这些文件中查找出程序究竟需要哪个文件就太简单了。
把撤消回来的文件单独剪切到一个文件夹中,然后按类型排列图标。根据经验判断,程序需要的文件只是dll文件,所以先从dll文件下手。
此主题相关图片如下:
(未完待续,为了节约版面下一次要接着这里发表,请注意)
2005-10-06
上面的操作中,把剪切的文件移动回原位置以后,再启动Front Page时程序就无法启动了,又提示需要安装服务才能运行。这说明程序需要的文件就在移动回的文件中。通过上面的图发现里面只有十多个dll文件,查找难度不大,先把其中一半剪切到新系统中。
剪切时也有巧门的。剪切时需要在一行的第一个文件上点右键,
此主题相关图片如下:

虽然在选中的文件任何一个上点右键都可以剪切,但是在粘贴的时候有说道啊,呵呵,粘贴的时候在窗口的右下角点右键,
此主题相关图片如下:

粘贴以后就可以把粘贴的文件横向粘到窗口之外。这样可以直接处理移动的文件,,
此主题相关图片如下:

把第一行移动到system后,程序可以启动,说明需要的文件就在这几个文件中,从上图中可以很清楚的看到移动的是哪几个文件,然后用精简软件的方法处理一下。就是删掉一个文件,启动一下程序,看看能否启动,如果能启动就说明刚删掉的文件是没用的,再接着删。如果删除后程序无法启动,就说明删掉的文件是有用的,就在空白处点右键,选择“撤消删除”就可以。最后查明只需要msi.dll文件即可运行。这让我想起了acdzsee5.0,这同样是需要安装服务运行,但是它在精简时会提示缺少某个文件,只要根据文件名就可以搜索到,非常省事,而微软这东西却不明说,害得我费了好大的劲,不过却锻炼了技术,呵呵,以后再遇到需要安装服务的软件的时候就直接去查这两个文件试试吧。
找到的文件在系统文件夹中,但是我们可以任意指定它的位置,只要程序可以找到这个文件就行,为了方便,把它放到Front Page的文件夹中。下一步就是精简程序文件,找到程序运行所需要的最少文件。这个过程就不多说了,可以参考5。0的贴子。接下来就进行精简注册表吧。
注册表是系统中比较重要的部分,如果处理不当,有时候会影响系统正常动行或死机。但是按本文介绍的方法备份了系统以后,你随时可以对注册表进行破坏性的修改。万一死机了就重启到dos下,用scanreg/restore恢复一下注册表即可,根本不用担心系统的稳定与否,实在不行就换一个系统,反正换一个系统才三两分钟。没有了可担心的,就可以大胆的精简注册表啦。
我以前精简过几个office的软件,对office有些了解,所以这次精简Front Page的时候直接去相关的键去精简。但是这篇文章要介绍的是对软件不了解的情况下如何查找的方法,所以还是要把猜测的全过程写出来的:)
猜测的过程和精简文件差不多,都是删掉一个键,然后启动一下程序,看看能否启动。只不过注册表太庞大了,不能只用这一种方法,要把多种查找的方法结合起来使用。
打开注册表可以看到六个根键。只有前三个根键与软件有关,所以精简软件的时候先从这三个键下手。首先打开第三根键:HKEY_LOCAL_MACHINE,现在假设不知道软件需要的键值在哪个子键中,不用理它,直接删掉HKEY_LOCAL_MACHINE中的子键,删除一个,启动一下程序,如果程序可以运行,就说明需要的键值不在此键中,如果删除后程序无法运行,就说明需要的键值在刚才删掉的键中,那么就把刚才删掉的键恢复,再去删除其它的键。用这样简单的方法就可以找到所需键值大概的位置。
整个HKEY_LOCAL_MACHINE根键中,只有 [HKEY_LOCAL_MACHINE\Software\CLASSES] 不可以删除。因为这个键是系统中最重要的键,如果删掉这个键以后,系统有可能会死机,也有可能会无法执行你的指令,如打开双击文件夹时打不开文件夹,双击图标无法打开相应的程序等等。所以这个键不要动它,其余的键可以大胆的删除,没任何问题的,呵呵,
其实如果对注册表有所了解的情况下,可以推测出软件大概的位置。在HKEY_LOCAL_MACHINE有一个Software子键,Software是“软件”的意思,大多数软件都会在这个键下建立一个和自己公司同名的子键,把自己需要的信息保存在这个子键下。所以可以直接去相应的子键下面精简的。office软件是微软的软件,所以直接去[HKEY_LOCAL_MACHINE\Software\Microsoft] 键下用删除法查找相关的键值。这个键下面有四五十个子键,可以慢慢的试验,删掉一个启动一下程序。也可以一次删除五六个键,然后启动程序测试。呵呵,
当删掉[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer]键以后,系统会提示
此主题相关图片如下:

这说明Front Page需要这个键才能正常运行,但是这个键却不必和Front Page精简到一起,因为98以上的系统都有这个键的。所以不用管它。先把前面保存的“完全安装”中的注册表文件导入系统,这样刚才删掉的所有键又恢复到注册表中了,然后跳过这个键,再去删除其它的键进行测试。(这里需要注意一下,前面保存的时候是保存了好多个分支的,这时导入00或03、03soft、03micro的任意一个都可以恢复刚才删掉的信息,但是恢复00是恢复全部的注册表,比较浪费时间,所以只需要恢复03micro即可。)
这是我精简后的注册表,
此主题相关图片如下:

注意,这是为了查找软件需要的注册表键值才精简成这样的,这时的系统是极不稳定的,动不好就会坏掉的,所以这时除了绿化软件以外最好不要做其它的工作。
猜测Front Page需要的注册信息就在office和windows两个子键中,下一步再用此法在这两个键下精简一番。
打开office子键,里面的分支并不多,精简后只剩下 [HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\Common\LV]一个子键,里面的值是这样的: [HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\Common\LV] "51356-001-0253803"=hex:83,41,7e,de,52,03,c6,ab,8a,31,f7,89,01,2d,3b,2c,9a,d8,\ ad,c4,b5,31,a1,6a,ca,a9,80,f8,8d,4a,e9,e6,f8,60,d0,3c,c3,86,38,25,68,d0,84,\ b0,ef,8a,2f,1a,7b,2f,ab,1d,80,0e,45,64,f8,40,55,3f,ba,8a,f9,bd,ce,52,ea,5f,\ 9a,9b,a5,0a,d0,d2,df,93,71,c3,63,95,78,5a,fb,b3,d2,34,7e,e3,77,8a,92,69,14,\ 73,ef,9e,02,ab,1e,02,69,c1,c3,f6,74,eb,08,76,90,d3,bb,30,94,a0,64,d5,12,56,\ 40,91,4f,89,18,94,21,1a,55,26,d6,18,7a,b0,ac,b1,b6,4b,c4,51,b0,3a,7b,80,5c,\ 7c,d2,ad,e7,3d,44,a2,1b,cd,33,3d,70,c6,e9,02,16,ff,84,64,78,f4,27,9f,45,b1,\ ab,9d,78,d6,5f,23,b3,08,30,a8,56,ef,65,d4,63,9b,1a,af,3e,4d,d1,f7,15,8f,73,\ 5a,db,8e,3b,00,08,9b,18,8f,30,97,0f,c6,30,0d,aa,67,57,91,46,aa,1a,be,16,3d,\ 3c,1a,e9,46,43,ac,ae,f7,27,56,71,b1,8a,c8,af,87,d2,14,9c,a6,81,63,e7,4f,5e,\ b1,89,6e,94,92,79,e2,a1,0b,d4,83,64,93,a6,ec,b5,5c,ac,31,bc,7b,9f,09,2b,2d,\ 64,df,d1,42,1b,0b,32,90,85,1b,38,b4,d9,50,36,ff,36,dc,17,df Front Page 2000精简失败就失败在这个键上,这个键的值是根据不同的硬件环境而改变的。精简后的软件在同一台电脑上的任何系统都可以运行,但是换一台电脑就无法再运行了。就是因为这个键,如果谁能把这个问题解决了,那么就可以制作出在任意电脑上运行的版本了。
失败归失败,软件还是要精简的,至少精简出来以后可以在自己的电脑上使用。下面处理windows分支。
windows下面有四五个分支吧,但真正有用的是CurrentVersion键,它的下面有很多个子键的。不知道哪个是有用的情况下,还是使用删除法,直接删掉子键测试。当删掉Installer子键时程序无法启动,要求要安装才能使用。说明这个键是程序需要的键。打开Installer,经过删除后只剩下两个键:Components和Features。其中Components下面有三百多个子键。要命。 待续
2005-10-09
最近几天我单位的活多,没偷出时间写贴子,过几天看看吧,争取20号之前贴出下集:)
----------------------------------
最近单位活忙,我没太多的时间写贴子,耽误了。不过在这几天中我发现了一点东西,就这一点东西挺重要的,我现在做出一个可以在98系统下通用的版本,不受硬件限制,已经在三个电脑上测试通过了,现在正在试验,看看能不能在2000和xp下也可以通用,如果可以通用的话那最好啦,
所以短时间内不会更新了,最少要半个月左右吧,,呵呵,,,,
就是不知道有没有人需要这个软件:) |