首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于注册表提取(文件的比较).解决方案

2012-03-02 
关于注册表提取(文件的比较).偶做一个注册表提取工具.偶的笨想法是:安装应用程序之前,先扫描备份注册表生

关于注册表提取(文件的比较).
偶做一个注册表提取工具.
偶的笨想法是:
安装应用程序之前,先扫描备份注册表生成A.reg  
然后再安装生成B.reg
理论上通过B.reg与A.reg的比较,得到的应该就是应用程序安程后写入注册表的信息.
现在的问题是:
如何比较这两个文件.得到想要的信息.
比如:
A.reg
123456
{123456}
aaaaaaaaa

B.reg  
123456
{123456}
123456789
aaaaaaaaa

比较出得到C.reg
123456789    


[解决办法]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TStringList* List_1;
TStringList* List_2;
TStringList* List_Result;

List_1 = new TStringList();
List_2 = new TStringList();
List_Result = new TStringList();

List_1-> LoadFromFile( "a.reg ");
List_2-> LoadFromFile( "b.reg ");

//代码以List_1 为打开小的文件,函数比较少,你的程序看者再改

int Index1 = List_1-> Count;
int Index2 = List_2-> Count;

int i=0;
for(int j=0; ((i <Index1)&&(j <Index2)); j++){
if(List_1-> Strings[i].Trim() == List_2-> Strings[j].Trim()){
i++;
continue;
}else{
RichEdit1-> Lines-> Add(List_2-> Strings[j].Trim());
List_Result-> Add(List_2-> Strings[j].Trim());
}
}
List_Result-> SaveToFile( "c.reg ");
}
[解决办法]
分都给我吧!!!

事实上这个工具早在n年前就由TW大虾用VC做出来了,程序相当精炼实用,并且源代码共享。

http://www.digitalnuke.com/


* 2003/10/15, 将这早应该发布的源码终于发布了,似
* 乎应该称其为 "该死的 "源码! 原因是它照现在的我来
* 看写得实在是不怎么样,只是小巧而已,也许我应该叫
* 它为 "regshit " :))

* regshot在1.4版做过重大的调整,重新写了引擎,就是
* 现在用的,后来又加入过9x的实时监控(vxd),后来又
* 因为某些原因去除,后来又加入了语言选择,后来由于
* 一次分区误操作,丢失了一些代码,所幸有备份,但再
* 升级的念头就没有了. 详见whatsnew.txt

* 我希望有程序员可以由此源码启发,写出若干控件,无论
* 是vb,还是vc,或是我喜欢的bc,造福大家,如果您能将
* 其做为免费的东西的话就太好了.

* 无论如何,人类的激情,怨恨,恋爱,自私,创造等等都是
* 过眼云烟......
* 飞出去,去迎接更广阔的未来

* TiANWEi at http://www.digitalnuke.com/

* Thanks to all of you!

/*************************************************
* RegShot Win9x,NT Registry compare tool *
* http://regshot.yeah.net spring_w@163.com *
* latest version: 1.61 2002/03/30 *
*************************************************

[解决办法]
错,当然不收费有源码提供

http://www.pediy.com/tools/spy_tools/Registry/RegShot/regshot1.72.zip

热点排行