9412748838e76cd878d32f841190ad6b.png

好了 窗口句柄获取到之后 咱们就要开始先考虑它的绑定模式

测试图色/鼠标/文本输入的绑定模式

今天咱们的例子 会使用到大漠插件

之前的院刊中 我们有分享过使用大漠绑定测试工具来测试窗口的绑定模式 传送门

当然 大漠绑定测试工具测试完 成功的模式 也不能打包票能用 所以我们还需要在脚本里测试

经过一番测试 吓尿了~

f9b17d5fe733a39fb2f85f5bd5e464da.gif

dnf的登录窗口是不支持后台图色绑定的。

鼠标模式 windows/dx (其他后台绑定模式未测试)

区服选择 登录按钮等都支持windows/dx后台绑定模式。

唯有 帐号密码输入框有它们自己的窗口句柄 需要找到它们的句柄才能对它们进行后台操作

6c4472ffca12cda7620b0820a5dea503.png

以桌面作为父窗口用findex命令查找 可以找到这两个类名为Edit的窗口。

但是 密码输入框 依然还是需要使用键码输入方式方可输入。

所以 本例子中不使用后台点击输入文本的方式

到了要点击帐号密码输入框时 改用前台鼠标点击

文本输入

帐号输入框使用了saystring 前台文本输入 命令

密码输入框 saystring 无效 使用了命令库里的 keylist 键码输入命令

22d1c5e74e07ced8cb627f6bfa5b0fa9.gif

小编也看了下tx的疾风之刃

它的登录窗口也是不支持后台图色。

判断是否到了选区界面

ebe2f8199d9936aac76c896ece54ccd8.png

DNF登录窗口——选区界面

前面 咱们用找句柄的方式判断了登录窗口是否出现 登录窗口第一个界面不就是选区界面么

那为什么还要再找呢 不是脱裤子放屁多此一举么

实际上 登录窗口句柄形成了之后 还要过一小会儿 它的窗口界面才会显示出来。

所以 当它的窗口句柄出现了之后 咱们绑定它 绑定完了之后

我们循环判断红框框中的图片是否出现 出现了则说明选区界面已经加载好了。

32282be1c6a51a460789053e541c3c1d.png

判断其他图不行吗 为什么非要红框框里的呢 大家一起看下这张图片就明白了

e32f3b670590d9cbdd21b4de226a7e6a.png

启动之后会出现连接服务器的提示 当它在连接过程中 只有 最近登录和推荐大区那一块是没有显示出来的。

如果显示出来了 则说明服务器已经连接好了。

所以 我们可以通过判断那一块的特征图片来判断连接到服务器没有。

然而 最近登录那一块 最近登录过的区服它是会发光的

(ps:小编不知道最近登录区 是不是固定都是最后一个球才会发光 所以不稳定的因素 咱们不拿来判断 推荐大区的那两个球不变的地方 都可以用来判断。)

287d276eb598ba84279b1957b8924acb.png

选择区服

前面 我们已经判断到了选区界面 判断到了选区界面之后 立即点击重新选择大区按钮。

4061dbf39f0ec36e29d6f03dc2a6a547.png

然后循环找字 先找 大区的 区服文字 例如 福建区

9049fdfeedf9dd15f5c0780543bcd1ec.png

字体很特别 在咱们的系统字体里找不到匹配的字体 不知道是个什么体

这种情况只能辛苦咱们一个个词组的去做字库了

(ps 考虑到工作量巨大 所以本例子中 小编只做了一个福建区的字库例子)

字库制作相关院刊 传送门

找到 “福建区 ”

单击它 然后循环查找 “福建1区”

a4fd73c1e54c358914977b667035ce65.png

找到 “福建1区 ”

之后 需要双击它才能进入帐号密码输入界面

判断是否到了帐号密码界面

73d8098f543e388d3fab9073267a4e16.png

帐号密码界面

选区界面到帐号密码界面 还需要加载 加载的快慢咱们估摸不来。

所以 依旧用找图的方式判断 到了帐号密码界面没有。

帐号密码界面的特征图片有许多

“登录游戏” 按钮 “选择服务器” 按钮等。

例子中 找的是 “登录游戏” 按钮图片

b9ac1743897ecf9eadeb94d36cd45d6d.gif

获取帐号密码输入框位置 输入帐号密码

b373965b106dbe96b7028f5bdf3c3f2b.png

小编使用大漠综合工具 绑定窗口之后 用取色点获取帐号密码输入框的坐标位置 这样可以省去了一番计算。

获取之后 由于前面的点击动作都是使用后台点击 帐号密码框需要用前台点击 就需要转换坐标

这里 使用 大漠的 GetWindowRect 获取窗口在屏幕上的位置 命令

dm_ret dm.GetWindowRect(hwnd,x1,y1,x2,y2)

返回值 x1 y1是窗口左上角的坐标

加上先前用大漠综合工具绑定获取到的 坐标 即转换成屏幕坐标。

返回值 x2, y2 是窗口右下角坐标

后台坐标前台坐标转换相关院刊 传送门

接下来就是读取帐号密码 然后进行输入

帐号密码 咱们可以记录在记事本里 然后读取

详细操作参见院刊 【院刊】-【201410期】记事本风云之游戏批量登录账号

帐号密码输入之后点击登录按钮

注意 帐号输入的时候要删除之前的帐号 双击可以选择帐号 但是由于鼠标点击游戏延迟等因素 并不是每次双击都可以稳妥的选中帐号 所以为了稳定起见 我们可以点击帐号框中间的位置 按下backspace 20次 删除左边的数字 再按下delete 20次删除右边的数字

检测是否登录成功

要如何判断登录成功与否

在输入了帐号密码的前提下 有三种情况导致登录不了

1、延时 网络情况不好

2、密码错误

3、帐号错误

情况1 咱们如法炮制 启动client.exe之后判断登录窗口出现的方法。

判断选频道窗口是否出现。

可设置长时间没出现 做出相应措施。

情况2 密码错误出现的提示

12378d01e6dc5985cfa748c8ac9548cd.png

ps:帐号密码都错的情况 它的提示也是 密码错误的提示

情况3 帐号错误出现的提示

6874039e97f8cbdc52856bc517d450a2.png