|
今天发了一个原创的《QQ一键透明皮肤》的程序
然而很多朋友们以前也都写过,但是不成功,所以要求我说一下原理,也有的朋友们需要我的源码,在这里呢,莫离想说一下,源码给大家也是没用的,所以今天我就说下我的原理吧。
我说的这已经够详细了,希望大家能认证地看,也希望大家编写好代码之后能把源码或者完成品发给我一下,让我看看大家的成果,也不枉费我的一番心血了吧,当然,遇到不懂的问题也可以问问我,可以发到“moli.kaniel@qq.com”
期待大家的好评哈!!
第一步:
我们要知道,以往的文件覆盖需要关闭QQ才能进行覆盖,所以我们在程序打开后要判断QQ是否是运行的,这个时候需要用到“进程是否存在”(这个我说了也没必要),这个命令在一般的模块下都是有的,但是为了一个命令加一个模块太坑爹了吧,所以还是自己写比较好。
第二步:
我们得明确,用户的QQ是保存在哪个磁盘,这个时候建议大家取注册表上的,因为每个人的QQ都不会保存在一个磁盘下的一个文件夹下面,这里我可以提供一个QQ的注册项目:SOFTWARE\Tencent\QQ2009\Install(这里取到的是QQ目录),SOFTWARE\Tencent\PlatForm_Type_List\3\TypePath(这里取到的是QQ路径)。
第三步:
好了,QQ目录和QQ路径都取到了,下面我们都知道文件覆盖的话,是覆盖到类似于“Resource.1.84.3470”的文件夹里面,还有一个是“Resource.1.84.3470\Themes”,这些都不重要,重要的是如何取到“Resource.1.84.3470”这个文件夹。我一开始也对此产生了疑惑,之后我就一直在探索,结果我右键查找QQ路径中的“QQ.exe”的文件信息的时候,在文件版本信息发现了“1.84.3470.0”。说到这里大家可以发现“1.84.3470.0”和“Resource.1.84.3470”相比之下多了一个“Resource.1”和“.0”。说实话,加上“Resource.1”并不困难,我们遇到的问题是删掉“.0”,之前我也试过了很多方法,但都是没有用的,之后我通过我们论坛的兄弟们知道了“取文本左边”,然后我就尝试了下,还真的取到了,其中的代码是这样的“取文本左边(文件版本信息.产品版本,9)”,但是我又发现有点不对,虽然正确了,但是大家可以想一想,如果“1.84.3470.0”(QQ的版本号)这个文件有一天变成了类似于“1.84.3470.123456”这样的该怎么办呢,于是我想了想,可以用取文本长度呀,这样的话,无论QQ再怎么更新,我们依然能取到类似于“Resource.1.84.3470”这样的文件夹
第四步:
好了,我们现在完成了无论QQ怎么更新,我们程序都能运行了。下一步就是准备以后不喜欢透明皮肤的时候免去重新安装QQ的烦恼了,大家仔细看。这个时候我们可以投机取巧,在程序一运行的时候复制一份原来没有透明皮肤的文件呗,复制到哪里呢?这个时候可以创建一个文件夹,复制到里面,以免未来我们不想要透明皮肤的时候方便还原下的。这个时候我想说一下,为了下一次运行程序的时候节省资源,我们可以加一个判断,如果已经复制了文件,就不需要再复制,少了哪一个文件,就复制哪一个文件,这样一来,既加快了程序的运行速度又节省了资源,一举两得哈。
第五步:
这个不需要我说了吧,当然是在按钮被按下的时候完成透明皮肤啦,这个时候呢,我们第二部所取到的QQ路径啊、QQ目录啊都派上用场了,利用QQ路径和QQ目录取到类似于“Resource.1.84.3470\Themes”的文件夹和类似于“Resource.1.84.3470”的文件夹,当按钮被按下的时候写到文件“Default.rdb”,“Res.rdb”。这样的话,就完美的实现了一键透明皮肤了,当然了,还原的话,我就不用说了吧,利用第四步我们复制到的文件再进行移动呗~~
|
评分
-
查看全部评分
|