本帖最后由 笨来无一悟 于 2025-10-9 20:39 编辑
没啥屁用 突发奇想能不能把回调写在自身 难是不难 第一次搞的时候踩了不少的坑
早就搞好了 今天翻到 发出来 可能有人需要
主要就是寄存器 局部变量 和 参数的保护与恢复 局部变量的赋值 毕竟是两个子程序共用同一个 变量 参数
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 调试输出 (所有子窗口 (, 句柄 ), 枚举子窗口 (, 句柄, , ), 筛选子窗口 (, 句柄, ), “对比数量是否一致”)枚举子窗口 (, 句柄, , “CTipWnd”) 计次循环首 (取数组成员数 (句柄 ), 计次 ) 调试输出 (窗口_取类名 (句柄 [计次 ]), 窗口_取标题 (句柄 [计次 ])) 计次循环尾 ()筛选子窗口 (, 句柄, &自定义条件 ) 计次循环首 (取数组成员数 (句柄 ), 计次 ) 调试输出 (窗口_取标题 (句柄 [计次 ])) 计次循环尾 ()|
枚举子窗口 | 整数型 | | |
父窗口句柄 | 整数型 | | | | 子窗口数组 | 整数型 | | | | 子窗口类名 | 文本型 | | | | 子窗口标题 | 文本型 | | | | 清除数组 (子窗口数组 )置入代码 ({ 235, 123 }) 判断循环首 (当前句柄 ≠ 0 ) 加入成员 (子窗口数组, 当前句柄 ) 当前句柄 = FindWindowExA (父窗口句柄, 当前句柄, 子窗口类名, 子窗口标题 ) 判断循环尾 ()返回 (取数组成员数 (子窗口数组 )) |
所有子窗口 | 整数型 | | |
父窗口句柄 | 整数型 | | | | 子窗口数组 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 指针 | 整数型 | | | 回调 | 子程序指针 | | |
循环判断首 () 清除数组 (子窗口数组 ) 指针 = 取变量地址 (子窗口数组 ) 置入代码 ({ 232, 2, 0, 0, 0, 235, 4, 139, 4, 36, 195, 131, 192, 17, 137, 69, 248 }) 跳出循环 () 置入代码 ({ 85, 137, 229, 131, 236, 40, 86, 87, 83, 255, 117, 16, 139, 69, 12, 137, 69, 16 }) 加入成员 (子窗口数组, 父窗口句柄 ) 置入代码 ({ 143, 69, 16, 91, 95, 94, 184, 1, 0, 0, 0, 201, 194, 8, 0 }) 循环判断尾 (假)EnumChildWindows (父窗口句柄, 回调, 指针 )返回 (取数组成员数 (子窗口数组 )) |
筛选子窗口 | 整数型 | | |
父窗口句柄 | 整数型 | | | | 子窗口数组 | 整数型 | | | | 自定义条件 | 子程序指针 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 指针 | 整数型 | | | 回调 | 子程序指针 | | |
循环判断首 () 清除数组 (子窗口数组 ) 指针 = 申请内存 (8, 真) 写到内存 (自定义条件, 指针 + 4, 4 ) 写到内存 (取变量地址 (子窗口数组 ), 指针, 4 ) 置入代码 ({ 232, 2, 0, 0, 0, 235, 4, 139, 4, 36, 195, 131, 192, 17, 137, 69, 248 }) 跳出循环 () 置入代码 ({ 85, 137, 229, 131, 236, 40, 86, 87, 83, 255, 117, 16, 139, 117, 12, 139, 62, 137, 125, 16 }) 置入代码 ({ 184, 1, 0, 0, 0, 139, 118, 4, 133, 246, 116, 5, 255, 117, 8, 255, 214, 137, 69, 252 })  如果真 (指针 ≠ 0 ) 加入成员 (子窗口数组, 父窗口句柄 ) 置入代码 ({ 143, 69, 16, 91, 95, 94, 184, 1, 0, 0, 0, 201, 194, 8, 0 }) 循环判断尾 (假)EnumChildWindows (父窗口句柄, 回调, 指针 )释放内存 (指针 )返回 (取数组成员数 (子窗口数组 )) 返回 (寻找文本 (窗口_取标题 (子窗口句柄 ), “易语言”, , 假) ≠ -1 )
来自群组: 热心网友 |