|
如何制作迷你软件(二) 在进一步查找的过程中,如果不想再用这种“排除法”,那就要多掌握一些关于注册表方面的知识,和软件在注册表中的规律。这里再介绍一种“猜测法” 一般的软件都会在[HKEY_LOCAL_MACHINE\Software]下面建立一个和自己公司名相同的子键,需要的注册信息保存在这里,大多数软件只需要这个键下的注册信息就可以启动,(汗一下,我一共才做过几个迷你软件,居然敢说“大多数软件”,汗,不过在这方面的确是要根据简单的几个去判断大多数的规律的,),但是有些软件虽然可以*这几个键值启动,但是功能却不完整。这是因为在[HKEY_LOCAL_MACHINE\Software\CLASSES]缺少相关的键值。如Acdsee5.0缺少下面的这三个键,在启动的时候就会报告无法找到数据库: [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{1BF48485-D8A7-4B74-98B6-251E885C701A}\InprocServer32] @="C:\\Program Files\\ACD Systems\\5.0\\IDBSvrps.dll" [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{E87A29B4-7738-4642-BACC-C85C1D9E7042}\LocalServer32] @="C:\\Program Files\\ACD Systems\\5.0\\IDBSVR.EXE" [HKEY_LOCAL_MACHINE\Software\CLASSES\Interface\{1BF48485-D8A7-4B74-98B6-251E885C701A}\ProxyStubClsid32] 虽然功能正常,但是这个错误报告很烦人,而且心理上不习惯,只要补上这三个键,acdsee5.0的功能就会正常。那么,从上面这一段中就可以得出两个查找键值的规律。 软件必须依*[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID]下面的键指定软件的安装路径,那么反过来我们可以通过软件的安装路径来查找软件所需要的键值。例如上例中Acdsee5.0安装在C:\Program Files\ACD Systems\5.0目录中,在地址栏中记下路径信息,然后打开注册表找到[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID]这个键,用查找功能查找Acdsee的安装路径,当然,找到的键值会有很多个,这些并不全是软件所需要的,所以还要用“猜测法”去掉多余的键。把找到的键先导出保存为注册表文件,然后再删掉这个键,然后启动一下程序,如果程序可以启动,那就说明这个键是不需要的,再去搜索,如果删掉这个键,程序启却不了,或者启动时报错,那就说明这个键是必须要有的,就把刚才保存的注册表文件再导入注册表中,再搜索其它的键,直到找完clsid中所有的键,再把找到的键值合到一起。 单是clsid还不够,软件还需要其它的信息,仔细注意一下上面的三个键,在clsid中的键的主键名都是带有一串字符的串,这些定符串是什么意思我也不懂,但是根据上面的三个键来看,除了clsid下的键以外,还需要在classes键下的其它键值,而且这个键的主键名和clsid键下的键名相同,所以,第一步是根据路径查找clsid下的键,接下来在找到的clsid键中再按主键名在classes键下寻找其它的键。找到以后再用“猜测法”猜测。就是先保存此键,再删掉它,再启动程序,看看程序是否可以正常运行,最后把找到的所有键合到一起,再换上个新系统测试。这种方法比“排除法”简单一些,也是我常用的方法之一。 软件所需要的键值多数分布在在calsses中的 这三个键下,具体什么用的我也不懂,只知道在这里有重要的东西。软件的复杂性不同,在classes键中的数量也不同,但和软件的大小无关。比如说Acdsee5.0只需要calsses下的三个键,但是Acdsee5.0自带的FotoCanvas2。0却需要上百个键。这就需要一定的耐性来查找了。 大多数软件都可以用上面的规律查找出所需键值,但是Office却不行,因为它是微软自己出的办公软件,对系统修改得太多,所以需要的键值也多,查找起来相当费工夫。开始不了解它的时候我用排除法查找了Word2000和FrontPageXP两个软件的迷你版,通过查找这两个软件,我对Office的大概规律了解一些,所以后来的AccessXP迷你版中就用了“猜测法”。在查找软件的键值过程中可以把两种方法结合起来,如果对注册表了解的多,可以用“猜测法”,如果对软件不太了解可以用“排除法”来查找。 (未完也别等了,下一集不知道啥时候能写出来,因为……因为……俺的电脑坏了55555555现在只在用一个133cpu、32M内存的电脑看贴打字,那速度你们想像去吧,5555555短时间没心情写了。) 超级分析
|
| [返回上一页] [打 印] |
|
上一篇文章:如何制作迷你软件(一) | 下一篇文章:安装信息追踪一例:从旧系统中提取驱动程序 |