← 返回总索引进程句柄初始化 · 修“都返回假”🔑 卡密引导09_组队与队员/进程句柄初始化_0928_代码.html

全局_进程句柄 初始化

热血江湖 YGOnline.exe · 2026-09-28 · 修 “是否已组队 / 是否是队长 都返回假”
根因已证实
探针首行 全局_进程句柄 = -1 → 句柄无效(≤0)。两个函数开头共有守卫 .如果真 (全局_进程句柄 ≤ 0) 返回(假) .如果真结束, 句柄 ≤0 时连内存都不读,直接返回假。
所以“都返回假”不是偏移错、不是逻辑错,是句柄没拿到。 易语言全局变量默认 0,出现 -1 说明:① 初始化没被调用;② 调用了但打开进程失败被置 -1。
① 初始化子程序(精易模块风格)必贴
.版本 2
.子程序 初始化进程句柄, 逻辑型, , 连游戏前必须调一次;成功返回真并填好 全局_进程句柄
.局部变量 进程ID, 整数型
进程ID = 进程_名取ID (“YGOnline.exe”)
.如果真 (进程ID = 0)
写日志 (自定义时间 () + “未找到 YGOnline.exe,请先启动游戏” + #换行符)
全局_进程句柄 = -1
返回 (假)
.如果真结束
全局_进程句柄 = 内存_打开进程 (进程ID)
.如果真 (全局_进程句柄 ≤ 0)
写日志 (自定义时间 () + “打开进程失败,句柄=” + 到文本 (全局_进程句柄) + “(检查:①编译为32位 ②管理员运行 ③XIGNCODE是否放行)” + #换行符)
返回 (假)
.如果真结束
写日志 (自定义时间 () + “进程句柄已就绪=” + 到文本 (全局_进程句柄) + “ PID=” + 到文本 (进程ID) + #换行符)
返回 (真)
② 调用位置(二选一)
一次性:启动窗口_创建完毕 第一行调 初始化进程句柄 (),进游戏后跑一次即可。
容错(推荐挂机):挂机主循环/时钟每周期判断,游戏重启自动重连:
.如果真 (全局_进程句柄 ≤ 0)
    初始化进程句柄 ()
.如果真结束
③ 排查:初始化后仍失败XIGNCODE
若 内存_打开进程 也返回 ≤0,基本是反外挂在挡“非 CE 进程”,按序排查:
  1. 易语言必须编译为 32 位(64 位程序被反外挂一律读不了 YGOnline.exe,环境坑17)。
  2. 以管理员身份运行你的 exe。
  3. 确认 YGOnline.exe 确实在运行。
  4. 若都做了仍失败 → “易语言直接读内存”被 XIGNCODE 拒(STATUS_ACCESS_DENIED)。
    此时应改用 CE 桥(32位CE + ce_mcp_bridge.lua),原 内存_读整数型(全局_进程句柄, …) 这套要整体换成桥的 readInteger,桥须挂 32 位 CE(D:\登录源码数据存储账号\CE+调试V7.6\csrss.exe)。
连带影响
自动处理组队 / 遍历队员 / 取队伍人数 等所有 内存_读整数型(全局_进程句柄, …) 调用,都会因 -1 读不到数据。 把句柄初始化接好,整条链路一起好。
热血江湖助手 · 分析资料站← 报告总目录助手主页