开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3419|回复: 14
收起左侧

[闲聊] 《QQ一键透明皮肤》原理[非常详细,完全原创]

[复制链接]
结帖率:53% (25/47)
发表于 2012-6-26 20:37:04 | 显示全部楼层 |阅读模式   江苏省无锡市
今天发了一个原创的《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”。这样的话,就完美的实现了一键透明皮肤了,当然了,还原的话,我就不用说了吧,利用第四步我们复制到的文件再进行移动呗~~

评分

参与人数 4好评 +1 精币 +10 收起 理由
步步高升 + 1 沙发没了。楼主打这么多字!!
大头佛 + 1 + 2 很认真,精易有你更精彩!
清清淡淡 + 2 精彩文章希望继续努力
素顏じ亦傾城ジ + 5 很精彩

查看全部评分

结帖率:53% (25/47)

签到天数: 1 天

 楼主| 发表于 2012-6-26 20:37:31 | 显示全部楼层   江苏省无锡市
求加分,求好评,求顶起!
回复 支持 反对

使用道具 举报

结帖率:100% (12/12)
发表于 2012-6-26 20:38:51 | 显示全部楼层   福建省厦门市
   我认真看看.. 呵呵...
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
发表于 2012-6-26 20:47:16 | 显示全部楼层   福建省厦门市
℡愛國々飯團 发表于 2012-6-26 20:38
我认真看看.. 呵呵...

肿么版主变成实习的了

点评

中间请假三个月,回来自然就变成实习的了.. 哭... 不过再几天就可以转正了   福建省厦门市  发表于 2012-6-26 20:56
回复 支持 反对

使用道具 举报

结帖率:100% (18/18)

签到天数: 1 天

发表于 2012-6-26 20:49:11 | 显示全部楼层   广西壮族自治区百色市
{:3_232:}经过详细的看了下。。
明白了。。。
论坛就需要人才。。。如果大家能把原创源码的思路写在帖子里更好哈~~~
回复 支持 反对

使用道具 举报

结帖率:53% (25/47)

签到天数: 1 天

 楼主| 发表于 2012-6-26 20:52:04 | 显示全部楼层   江苏省无锡市
寻梦丶宏 发表于 2012-6-26 20:49
经过详细的看了下。。
明白了。。。
论坛就需要人才。。。如果大家能把原创源码的思路写在帖子里 ...

呵呵,多谢支持!{:soso__9823534606286538307_4:}
回复 支持 反对

使用道具 举报

结帖率:100% (60/60)
发表于 2012-6-26 21:04:11 | 显示全部楼层   浙江省嘉兴市
人才啊 同样我也是人才 哈哈
回复 支持 反对

使用道具 举报

结帖率:91% (10/11)

签到天数: 2 天

发表于 2012-6-26 21:25:56 | 显示全部楼层   广东省*
这么少人。占个位置。提提知名度。{:3_228:}
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
发表于 2012-6-26 21:49:48 | 显示全部楼层   四川省成都市
你可以这样实现
局部变量,,A
取进程ID(A)
进程取句柄(A) [不是 进程名取句柄]
设置窗口透明度(A)就可以实现对那个窗口的透明


点评

因为E语言提供的设置窗口透明度这个命令其实是API实现的在实现前并没有使用那么多限制所以可以实现 你可以使用USER...DLL实现窗口句柄取出_在其取出_并设定_QQ一般免检查   四川省成都市  发表于 2012-6-26 21:56
因为E语言提供的设置窗口透明度这个命令其实是API实现的在实现前并没有使用那么多限制所以可以实现 你可以使用USER...DLL实现窗口句柄取出_在其取出_并设定_QQ一般免检查   四川省成都市  发表于 2012-6-26 21:56
因为E语言提供的设置窗口透明度这个命令其实是API实现的在实现前并没有使用那么多限制所以可以实现 你可以使用USER...DLL实现窗口句柄取出_在其取出_并设定_QQ一般免检查   四川省成都市  发表于 2012-6-26 21:55
也可以从注册表获取 首先使用API 目录是否存在 整数型 测试一下 也可以为逻辑型 到----文本 取QQ全路径----目录 剩下的就只有QQ的进程名 在用我给你说的那种方法就可以轻松实现、、、   四川省成都市  发表于 2012-6-26 21:52
回复 支持 反对

使用道具 举报

结帖率:53% (25/47)

签到天数: 1 天

 楼主| 发表于 2012-6-26 23:28:15 | 显示全部楼层   江苏省无锡市
玲心韩雪 发表于 2012-6-26 21:49
你可以这样实现
局部变量,,A
取进程ID(A)

嗯哪,谢谢你,我回去试试看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表