TC官方合作论坛

 找回密码
 立即注册
查看: 25547|回复: 252

DNF全自动登录源码放送(各种异常处理全部融入,不再受掉线城的影响)

  [复制链接]
发表于 2013-4-9 02:16:53 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
登陆这块主要考虑几个问题:
  1、一般DNF启动后每到一个登陆环节会产生一些进程,这些进程对你有益也有害,有益的是能利用他们为我们所用,有害呢,是指有时候DNF窗口突然消失后这些进程还未结束,继续残留于此,导致我们再启动DNF进程的时候就无法正常登陆进去。那么我们首先就需要结束这些进程再进行登陆。由于我这款软件双开的情况下不能使用掉线后自动登陆功能。所以也就没有考虑双开登陆所对应指定的EXE进行结束了。在结束的方面上面我用了2个BAT来结束,一个是不结束DNF.EXE 和一个需要结束DNF.EXE的。
结束DNF.EXE的Bat:ENDALLPROCESS.bat
内容:
@echo off
echo start......  
Taskkill /f /im qqlogin.exe /im dnfchina.exe /im tencentdl.exe /im tensafe.exe /im dnfchinatest.exe /im dnf.exe
echo over!
不结束DNF.EXE的Bat:ENDPARTPROCESS.bat
内容:
@echo off
echo start......
Taskkill /f /im qqlogin.exe /im dnfchina.exe /im tencentdl.exe /im tensafe.exe /im dnfchinatest.exe  
echo over!
2、依然用之前的枚举子句柄方法实现点击确认选择按钮,好处呢?当然是TC自带的窗口后台点击模式选择按钮了。

3、进入下载更新页面这里也需要进行处理,有时候会弹出是否重新下载,这个地方我直接在异常处理里面可以消掉。但是我们一般不知道会更新多久时间,所有我这里进行了对游戏如果更新的话,就让它一直等待。除非游戏窗口消失,来达到让游戏正常更新。

4、进入登陆界面后,依然是枚举句柄。怎么判断是否进入登陆账户界面,直接找账户和密码的句柄即可来判断是否已经在登陆界面了。但是我们又如何来判断是否可以输入账户密码呢???额,想想......我采用的方法是依然枚举,你猜到了吗?就是我们直接向账户句柄提交一个回车按钮,如果能输入账户密码的情况下,账户密码为空直接条件回车会弹出账户密码错误的消息框来。这个时候我就利用是否弹出消息框来判断是否能进入输入账户密码了。是不是很简单,可以说又是后台实现,忽略掉了找图找字,这个时候去找字找图显然不是最好的。

5、如何判断账户密码正确并且已经进入了游戏中的窗口呢?我这里是根据QQLogin.exe这个进程进行判断的,当它消失了基本可以说已经进入登陆界面了。以及是否再次弹出错误消息框进行结合判断。至于验证码的话我这里没添加,其实这东西很简单,无非就是远程代答嘛,知道别人接口直接套用即可。我这边都是自己的QQ账号所有没验证码就没加了(呵呵 不想浪费钱)。

6、进入游戏后需要给用户一个选择:是进入空闲还是指定的频道,这里还需要注意的是爆满的时候几乎进不去,所以还要进行挤线功能(也就是刷出不爆满再进入,成功100%) 。而且还要判断出现了不是爆满的情况下会不会出现房间人数已满的情况。这里也需要考虑,或者是网络连接中断了,再或者是ID已登陆等情况。当然我写的代码在指定一段时间没执行成功某个阶段直接再重新登陆即可。

7、对于选择指定频道这里还需要处理一下,我直接给所有频道都做成了一个字库如:ch01 则为一个频道,这样方便找,而且其实字库这玩意也好做,不用每次到频道这里截字。直接到游戏里面按下回车,聊天上面直接打上字然后截取就OK,基本字体都是一个型号,除了少部分。我要说的是我用的是快速找字,可能会导致201、202等频道无法进入,所有这里我采用了特殊处理,让出现这些频道后不再第一页找即可。

8、对于拥线这里我也有必要说一下,因为要考虑到每次刷新后有时候频道会直接停留这页上面,我们也就没有必要再次初始化到第一页后再往后面进行查看指定频道。我这里加入了刷新频道会在本页找一次,如果没有再初始化页面后再翻页找。提高挤线的频率。

9、进入选择角色界面这里,这个地方就是去每个框的区域来实现找一些账号了,大家看代码好理解一些。

10、进入了赛丽亚房间后我也对LOADING进行了处理和对广告进行了处理。


下面是我制作的软件界面,部分页面考虑到游戏的一些商机就没有贴出来给大家看了,还望谅解!
一、《登录界面》
00.png
二、《扫拍界面》
2.png
三、《扫拍设置界面》
3.png
四、《信息界面》这界面只显示登陆的信息,扫拍记录我用写屏方式呈现的。
9.png

注:主线程将通过BreakIn() 函数进入执行整个任务:
1、程序入口子空间: 程序入口子空间.rar (3.47 KB, 下载次数: 263)
回复

使用道具 举报

 楼主| 发表于 2013-4-9 02:21:46 | 显示全部楼层
看到这么多英文是不是需要顶一个呢 ?  虽然是英文但是整体的结构都很清晰,不难理解。
回复 支持 反对

使用道具 举报

发表于 2013-4-9 06:33:45 | 显示全部楼层
看到这么长的文章,怎么都要支持一个,
回复 支持 反对

使用道具 举报

发表于 2013-4-9 06:55:39 | 显示全部楼层
回复 1楼T_暗乄殇灬的帖子

支持,你很强大了
回复 支持 反对

使用道具 举报

发表于 2013-4-9 07:24:07 | 显示全部楼层
支持
回复 支持 反对

使用道具 举报

发表于 2013-4-9 07:33:30 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

发表于 2013-4-9 09:16:51 | 显示全部楼层
太给力了,专业的就是专业的,好怀念日天哥的DNF脚本,支持开源,顶无私的日天哥!
回复 支持 反对

使用道具 举报

发表于 2013-4-9 09:17:49 | 显示全部楼层
我要看下
回复 支持 反对

使用道具 举报

发表于 2013-4-9 09:22:42 | 显示全部楼层
英文一句都看不懂 更别说理解代码了
回复 支持 反对

使用道具 举报

发表于 2013-4-9 09:24:04 | 显示全部楼层
好厉害,致敬。希望花些时间把它看懂。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-3-29 10:36 , Processed in 0.049650 second(s), 27 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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