← 返回总索引自动处理组队(子程序集)🔑 卡密引导07_窗口与UI交互逆向/自动处理组队_代码.html

自动处理组队(子程序集)

热血江湖 YGOnline.exe · 2026-09-28 · 组队接受952 / 组队拒绝960
整段粘贴:第一行必须是 .版本 2,缺这行易语言不认后面的 .子程序 / .参数。
行首零缩进:别自己先缩,易语言会按 如果/循环 自动缩进。
复制全部:按本页从上到下的顺序拼接,可直接一次粘进工程。

① 常量表17 行

.版本 2
.常量 IFManager基址, "25740828"
.常量 控件ID偏移, "12"
.常量 控件类型偏移, "8"
.常量 面板类型码, "24"
.常量 窗口可见标志, "64"
.常量 按钮类型码, "34"
.常量 窗口子槽起点, "768"
.常量 窗口子槽终点, "1532"
.常量 窗口子槽个数, "192"
.常量 交易窗口槽, "1236"
.常量 组队窗口槽, "1256"
.常量 通知窗口槽, "1028"
.常量 交易接受, "908"
.常量 交易拒绝, "916"
.常量 组队接受, "952"
.常量 组队拒绝, "960"

② 全局变量3 行

.版本 2
.全局变量 全局_组队已处理, 逻辑型
.全局变量 全局_交易已处理, 逻辑型

③ 自动处理组队15 行

.版本 2
.子程序 自动处理组队
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 按钮, 整数型
.如果真 (窗口是否弹出 (窗口.组队) = 假)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.组队)
按钮 = 内存_读整数型 (全局_进程句柄, 组队窗 + #组队接受)
.如果真 (按钮 > 65536)
按钮点击call (内存_读整数型 (全局_进程句柄, 按钮 + #控件ID偏移))
.如果真结束
返回 ()

④ 自动拒绝组队15 行

.版本 2
.子程序 自动拒绝组队
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 按钮, 整数型
.如果真 (窗口是否弹出 (窗口.组队) = 假)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.组队)
按钮 = 内存_读整数型 (全局_进程句柄, 组队窗 + #组队拒绝)
.如果真 (按钮 > 65536)
按钮点击call (内存_读整数型 (全局_进程句柄, 按钮 + #控件ID偏移))
.如果真结束
返回 ()

⑤ 自动处理组队_带闸门21 行

.版本 2
.子程序 自动处理组队_带闸门
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 接受ID, 整数型
.如果真 (窗口是否弹出 (窗口.组队) = 假)
全局_组队已处理 = 假
返回 ()
.如果真结束
.如果真 (全局_组队已处理 = 真)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.组队)
接受ID = 取组队接受按钮ID (组队窗)
.如果真 (接受ID ≤ 0)
返回 ()
.如果真结束
按钮点击call (接受ID)
全局_组队已处理 = 真
返回 ()

⑥ 自动处理组队_带日志26 行

.版本 2
.子程序 自动处理组队_带日志
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 控件ID, 整数型
.如果真 (窗口是否弹出 (窗口.组队) = 假)
全局_组队已处理 = 假
返回 ()
.如果真结束
.如果真 (接受组队.选中 = 假)
返回 ()
.如果真结束
.如果真 (全局_组队已处理 = 真)
返回 ()
.如果真结束
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.组队)
控件ID = 取组队接受按钮ID (组队窗)
.如果真 (控件ID ≤ 0)
挂机信息.加入文本 (自定义时间 () + “[组队] 组队窗弹出但接受按钮读不到(窗口=” + 到文本 (组队窗) + “)” + #换行符)
返回 ()
.如果真结束
挂机信息.加入文本 (自定义时间 () + “[组队] 点接受按钮  窗口=” + 到文本 (组队窗) + “  控件ID=” + 到文本 (控件ID) + #换行符)
按钮点击call (控件ID)
全局_组队已处理 = 真
返回 ()

⑦ 取窗口按钮ID_按横坐标 等 2 个45 行

.版本 2
.子程序 取窗口按钮ID_按横坐标, 整数型
.参数 槽偏移, 整数型
.参数 横坐标, 整数型
.局部变量 接口管理, 整数型
.局部变量 窗口对象, 整数型
.局部变量 i, 整数型
.局部变量 子对象, 整数型
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
.如果真 (接口管理 ≤ 65536)
返回 (0)
.如果真结束
窗口对象 = 内存_读整数型 (全局_进程句柄, 接口管理 + 槽偏移)
.如果真 (窗口对象 ≤ 65536)
返回 (0)
.如果真结束
.计次循环首 (#窗口子槽个数, i)
子对象 = 内存_读整数型 (全局_进程句柄, 窗口对象 + #窗口子槽起点 + (i - 1) × 4)
.如果真 (子对象 > 65536)
.如果真 (内存_读整数型 (全局_进程句柄, 子对象 + #控件类型偏移) = #按钮类型码)
.如果真 (内存_读整数型 (全局_进程句柄, 子对象 + 40) = 横坐标)
返回 (内存_读整数型 (全局_进程句柄, 子对象 + #控件ID偏移))
.如果真结束
.如果真结束
.如果真结束
.计次循环尾 ()
返回 (0)

.版本 2
.子程序 自动处理组队_按坐标
.局部变量 控件ID, 整数型
.如果真 (窗口是否弹出 (窗口.组队) = 假)
全局_组队已处理 = 假
返回 ()
.如果真结束
.如果真 (全局_组队已处理 = 真)
返回 ()
.如果真结束
控件ID = 取窗口按钮ID_按横坐标 (窗口.组队, 85)
.如果真 (控件ID ≤ 0)
返回 ()
.如果真结束
按钮点击call (控件ID)
全局_组队已处理 = 真
返回 ()

⑧ 自动处理弹窗5 行

.版本 2
.子程序 自动处理弹窗
自动处理交易 ()
自动处理组队_带闸门 ()
返回 ()

⑨ 打印组队窗按钮表20 行

.版本 2
.子程序 打印组队窗按钮表
.局部变量 接口管理, 整数型
.局部变量 组队窗, 整数型
.局部变量 i, 整数型
.局部变量 子对象, 整数型
接口管理 = 内存_读整数型 (全局_进程句柄, #IFManager基址)
组队窗 = 内存_读整数型 (全局_进程句柄, 接口管理 + 窗口.组队)
挂机信息.加入文本 (“=== 组队窗 槽1256 按钮表 窗口=” + 到文本 (组队窗) + “ ===” + #换行符)
.如果真 (组队窗 > 65536)
.计次循环首 (#窗口子槽个数, i)
子对象 = 内存_读整数型 (全局_进程句柄, 组队窗 + #窗口子槽起点 + (i - 1) × 4)
.如果真 (子对象 > 65536)
.如果真 (内存_读整数型 (全局_进程句柄, 子对象 + #控件类型偏移) = #按钮类型码)
挂机信息.加入文本 (“  +0x” + 取十六进制文本 (内存_读整数型 (全局_进程句柄, 组队窗 + #窗口子槽起点 + (i - 1) × 4)) + “  槽” + 到文本 (#窗口子槽起点 + (i - 1) × 4) + “  ID=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + #控件ID偏移)) + “  坐标” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 40)) + “,” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 44)) + “  可用=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 64)) + “  生效=” + 到文本 (内存_读整数型 (全局_进程句柄, 子对象 + 72)) + #换行符)
.如果真结束
.如果真结束
.如果真结束
.计次循环尾 ()
.如果真结束

⑩ 挂机主循环11 行

.版本 2
.子程序 挂机主循环
.局部变量 继续跑, 逻辑型
窗口槽位表_初始化 ()
继续跑 = 真
.判断循环首 (继续跑)
自动处理弹窗 ()
挂机逻辑 ()
延时 (500)
.判断循环尾 ()
返回 ()

· 取组队接受按钮ID 等 3 个43 行

.版本 2
.子程序 取组队接受按钮ID, 整数型, , 自动判定左/右哪个是"接受",返回它的控件ID;都读不到返回 0
.参数 窗口对象, 整数型
.局部变量 左, 整数型
.局部变量 右, 整数型
左 = 内存_读整数型 (全局_进程句柄, 窗口对象 + #组队接受)
右 = 内存_读整数型 (全局_进程句柄, 窗口对象 + #组队拒绝)
.如果真 (左 ≤ 65536 或 右 ≤ 65536)
返回 (0)
.如果真结束
.如果 (按钮文字是接受 (左))
返回 (内存_读整数型 (全局_进程句柄, 左 + 12))
.否则如果 (按钮文字是拒绝 (左))
返回 (内存_读整数型 (全局_进程句柄, 右 + 12))
.否则如果 (按钮文字是接受 (右))
返回 (内存_读整数型 (全局_进程句柄, 右 + 12))
.否则
返回 (内存_读整数型 (全局_进程句柄, 左 + 12))
.如果结束

.子程序 按钮文字是接受, 逻辑型
.参数 按钮对象, 整数型
.局部变量 前4字节, 字节集
.局部变量 i, 整数型
.计次循环首 (192, i)
前4字节 = 取字节集左边 (内存_读字节集 (全局_进程句柄, 内存_读整数型 (全局_进程句柄, 按钮对象 + (i - 1) × 4), 4), 4)
.如果真 (前4字节 = 机器码到字节集 (“B1B5A8FC”) 或 前4字节 = 机器码到字节集 (“BD54BB7B”) 或 前4字节 = 机器码到字节集 (“BD54A977”) 或 前4字节 = 机器码到字节集 (“A650B74E”))
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)

.子程序 按钮文字是拒绝, 逻辑型
.参数 按钮对象, 整数型
.局部变量 前4字节, 字节集
.局部变量 i, 整数型
.计次循环首 (192, i)
前4字节 = 取字节集左边 (内存_读字节集 (全局_进程句柄, 内存_读整数型 (全局_进程句柄, 按钮对象 + (i - 1) × 4), 4), 4)
.如果真 (前4字节 = 机器码到字节集 (“A9DAB5B4”) 或 前4字节 = 机器码到字节集 (“A8FAAEF8”) 或 前4字节 = 机器码到字节集 (“A9BFB2A4”) 或 前4字节 = 机器码到字节集 (“C3F6B3AC”))
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
热血江湖助手 · 分析资料站← 报告总目录助手主页