🛰️ 窗口模块(WIN)
📌 函数: HD窗口_排序通讯窗口
描述
排序安装过插件的进程
原型
__int64 __stdcall HCWIN_SortWindows(__int32 offsetW,__int32 offsetH,__int32 width,__int32 height);
参数
offsertX - 水平偏移距离(2个相邻窗口的左上角的水平距离)
offsertY - 垂直偏移距离(2个相邻窗口的左上角的垂直距离)
__int32 width - 窗口宽度
__int32 height - 窗口高度
返回值
查看返回值表
注意事项
安装过插件的经常意思表示:
1.通讯过的窗口序号的对应的进程PID(未被第二次初始化序号HCInject_Init)
2.卸载进程环境不会影响绑定过的进程排序(不能调用始化序号HCInject_Init的前提下,也就是可以重连的情况下)
3.HCInject_Init这个接口一旦调用,就会取消所有关联(意味着不能重连了),从而影响当前绑定的窗口PID,意味着新窗口即将打开
HD窗口_排序通讯窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_排序通讯窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_伪装进程
描述
伪装进程(防止检查到实际的进程存在)
原型
__int64 __stdcall HCWIN_CamouflageProcess(char* runName,char* targetPath,__int32 type);
参数
char* runName - 给伪装进程取的别名(任意前缀/后缀名字)如
char* targetPath - 需要伪装的进程全路径(包含.exe)如
__int32 type - 需要伪装的进程位数32或64
返回值
查看返回值表
注意事项
无
案例:
把注入器伪装成了hd.exe
HD窗口_伪装进程 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_伪装进程 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_设置窗口状态
描述
设置或者操作窗口状态
原型
__int64 __stdcall HCWIN_SetWindowState(__int64 hwnd,__int32 type);
参数
__int64 hwnd - 窗口句柄如果type==18/19表示刷新桌面这个时候hwnd可以为0type
返回值
查看返回值表
注意事项
无
HD窗口_设置窗口状态 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_设置窗口状态 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_设置窗口大小
描述
设置窗口大小
原型
__int64 __stdcall HCWIN_SetWindowSize(__int64 hwnd,__int32 width,__int32 hight,BOOL bCenter=FALSE);
参数
__int64 hwnd - 窗口句柄
__int32 width - 宽度
__int32 hight - 高度
bool bCenter - 窗口是否居中
返回值
查看返回值表
注意事项
窗口居中会改变窗口位置
HD窗口_设置窗口大小 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_设置窗口大小 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_窗口移动
描述
移动窗口
原型
__int64 __stdcall HCWIN_MoveWindow(__int64 hwnd,__int32 x,__int32 y);
参数
__int64 hwnd - 窗口句柄
__int32 x - 屏幕坐标x
__int32 y - 屏幕坐标y
返回值
查看返回值表
注意事项
无
HD窗口_窗口移动 - 基础示例
.版本 2
.子程序 测试VNC鼠标相对移动, 逻辑型, 公开
.局部变量 窗口序号, 整数型
.局部变量 偏移X, 整数型
.局部变量 偏移Y, 整数型
.局部变量 结果, 逻辑型
' 设置相对移动参数
窗口序号 = 1
偏移X = 100 ' 向右移动100像素
偏移Y = 50 ' 向下移动50像素
调试输出 ("准备VNC鼠标相对移动")
调试输出 ("偏移量:(", 偏移X, ",", 偏移Y, ")")
' 执行VNC鼠标相对移动
结果 = HDVNC_相对移动 (窗口序号, 偏移X, 偏移Y)
.如果 (结果 = 真)
调试输出 ("VNC鼠标相对移动成功")
.否则
调试输出 ("VNC鼠标相对移动失败")
.如果结束
返回 (结果)
HD窗口_窗口移动 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_窗口移动 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_是否64位进程
描述
目标窗口句柄/目标进程是否64位
原型
__int64 __stdcall HCWIN_IsWow64Process(__int64 hwnd,__int32 pid=0);
参数
__int64 hwnd - 窗口句柄
__int32 pid - 进程PID
返回值
查看返回值表
注意事项
窗口句柄或者PID任意指定一个就行
如果2个都指定则PID用于检测
HD窗口_是否64位进程 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_是否64位进程 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口标题
描述
获取目标窗口标题
原型
__int64 __stdcall HCWIN_GetWindowTitle(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口标题 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口标题 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口线程ID
描述
获取目标窗口句柄的线程ID
原型
__int64 __stdcall HCWIN_GetWindowThreadProcessId(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口线程ID - 基础示例
.版本 2
.子程序 启动多线程任务
.局部变量 窗口序号, 整数型
.局部变量 启动结果, 逻辑型
.局部变量 工作模式, 整数型
' 初始化HD环境
.如果 (初始化HD环境 () = 假)
信息框 ("HD环境初始化失败", 0)
返回 ()
.如果结束
' 启动多个窗口任务
.计次循环首 (到整数 (编辑框_窗口数量.内容), 窗口序号)
窗口序号 = 窗口序号 + 1
' 设置账号信息
账号信息数组 [窗口序号].序号 = 窗口序号
账号信息数组 [窗口序号].账号 = "账号" + 到文本 (窗口序号)
账号信息数组 [窗口序号].密码 = "密码" + 到文本 (窗口序号)
账号信息数组 [窗口序号].进程位数 = 64 ' 根据实际情况设置
' 选择工作模式
工作模式 = 选择框_工作模式.选中值
.判断开始 (工作模式)
.判断 (工作模式 = 0) ' 仅登录器模式
启动结果 = HD多线程_启动指定窗口 (窗口序号, &HD登录回调, &HDUI回调, 假, 假)
.判断 (工作模式 = 1) ' 仅客户端模式
启动结果 = HD多线程_启动指定窗口 (窗口序号, &HD客户端回调, &HDUI回调, 假, 假)
.判断 (工作模式 = 2) ' 登录器+客户端协同模式
启动结果 = HD多线程_启动指定窗口 (窗口序号, &HD协同回调, &HDUI回调, 假, 假)
.默认
启动结果 = 假
.判断结束
.如果 (启动结果 = 真)
调试输出 ("窗口", 窗口序号, "启动成功")
.否则
调试输出 ("窗口", 窗口序号, "启动失败")
.如果结束
' 错开启动时间,避免资源冲突
HD系统_延时 (1000)
.计次循环尾 ()
.子程序 HD协同回调, 长整数型, 公开
.参数 窗口序号, 整数型
.局部变量 登录器结果, 长整数型
.局部变量 客户端结果, 长整数型
HD多线程_发送文本 (窗口序号, "开始协同模式任务", 假)
' 第一步:启动登录器
登录器结果 = 打开登录器 (窗口序号, 账号信息数组 [窗口序号].进程位数)
.如果 (登录器结果 <= 0)
HD多线程_发送文本 (窗口序号, "登录器启动失败,任务终止", 假)
返回 (-1)
.如果结束
' 第二步:在登录器中完成登录操作
.如果 (执行登录流程 (窗口序号) = 假)
HD多线程_发送文本 (窗口序号, "登录流程失败", 假)
返回 (-2)
.如果结束
' 第三步:启动游戏客户端
客户端结果 = 打开客户端 (窗口序号, 账号信息数组 [窗口序号].进程位数)
.如果 (客户端结果 <= 0)
HD多线程_发送文本 (窗口序号, "客户端启动失败", 假)
返回 (-3)
.如果结束
' 第四步:进入游戏主循环
返回 (游戏主循环 (窗口序号))
HD窗口_获取窗口线程ID - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口线程ID - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口进程ID
描述
获取目标窗口句柄的进程ID
原型
__int64 __stdcall HCWIN_GetWindowProcessId(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口进程ID - 基础示例
.版本 2
.子程序 测试添加代理进程, 逻辑型, 公开
.局部变量 进程名称, 文本型
.局部变量 结果, 逻辑型
' 设置需要使用代理的进程
进程名称 = "chrome.exe"
调试输出 ("准备添加代理进程")
调试输出 ("进程名称:", 进程名称)
' 添加进程到代理列表
结果 = HDIP_有米添加进程 (进程名称)
.如果 (结果 = 真)
调试输出 ("代理进程添加成功")
调试输出 ("该进程的网络流量将通过代理")
.否则
调试输出 ("代理进程添加失败")
调试输出 ("请检查进程名称是否正确")
.如果结束
返回 (结果)
HD窗口_获取窗口进程ID - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口进程ID - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口进程路径
描述
获取目标窗口句柄的路径
原型
__int64 __stdcall HCWIN_GetWindowProcessPath(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口进程路径 - 基础示例
.版本 2
.子程序 测试窗口句柄取PID, 整数型, 公开
.局部变量 窗口句柄, 长整数型
.局部变量 进程PID, 整数型
' 获取记事本窗口句柄
窗口句柄 = 寻找窗口 ("", "记事本")
.如果 (窗口句柄 = 0)
调试输出 ("未找到记事本窗口")
返回 (0)
.如果结束
调试输出 ("准备获取窗口对应的进程PID")
调试输出 ("窗口句柄:", 窗口句柄)
' 通过窗口句柄获取进程PID
进程PID = HDNT_窗口句柄取PID (窗口句柄)
.如果 (进程PID > 0)
调试输出 ("获取进程PID成功:", 进程PID)
.否则
调试输出 ("获取进程PID失败")
.如果结束
返回 (进程PID)
HD窗口_获取窗口进程路径 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口进程路径 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口位置
描述
获取窗口在屏幕上的位置
原型
__int64 __stdcall HCWIN_GetWindowRect(__int64 hwnd,void* pRect=NULL);
参数
__int64 hwnd - 窗口句柄
void pRect - 指向RECT结构体地址(供C/C++调用)这个参数可以直接获取值,如果是其他语言可以HCEnv_GetRetJson获取字符串
返回值
查看返回值表
注意事项
返回字符串:
left|top|rifght|bottom|
RECT结构体:
typedefstructtagRECT{LONGleft;LONGtop;LONGright;LONGbottom;}RECT,* PRECT;
HD窗口_获取窗口位置 - 基础示例
.版本 2
.子程序 _HD截图获取数据示例
.局部变量 窗口序号, 整数型
.局部变量 数据地址, 整数型
.局部变量 结构体数量, 整数型
.局部变量 返回地址, 整数型
窗口序号 = 0
' 确保截图功能已开启
.如果 (HD截图_获取截图状态 (窗口序号) ≠ 1)
.如果 (HD截图_打开 (窗口序号) = 假)
调试输出 ("截图功能开启失败")
返回 (假)
.如果结束
HD系统_延时 (300)
.如果结束
' 获取截图数据
返回地址 = HD截图_获取截图数据 (窗口序号, 数据地址, 结构体数量)
.如果 (返回地址 > 0)
调试输出 ("截图数据获取成功")
调试输出 ("数据地址:0x" + 到十六进制 (数据地址))
调试输出 ("结构体数量:" + 到文本 (结构体数量))
调试输出 ("返回地址:0x" + 到十六进制 (返回地址))
' 这里可以进一步处理截图数据
' 注意:使用完毕后需要释放内存
.如果 (数据地址 > 0)
HD截图_释放数据 (数据地址)
调试输出 ("截图数据已释放")
.如果结束
.否则
调试输出 ("截图数据获取失败")
.如果结束
HD窗口_获取窗口位置 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口位置 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口类名
描述
获取目标窗口句柄的窗口类名
原型
__int64 __stdcall HCWIN_GetWindowClass(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口类名 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口类名 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口状态
描述
获取目标窗口句柄的窗口状态
原型
__int64 __stdcall HCWIN_GetWindowState(__int64 hwnd,__int32 flag);
参数
__int64 hwnd - 窗口句柄
__int32 flag - 判断窗口是否存在(0),判断窗口是否处于激活(1),判断窗口是否可见(2),判断窗口是否最小化(3),判断窗口是否最大化(4),判断窗口是否置顶(5),判断窗口是否无响应(6),
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口状态 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口状态 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取特殊窗口
描述
获取特殊窗口桌面Shell_TrayWnd
原型
__int64 __stdcall HCWIN_GetSpecialWindow(__int32 flag);
参数
__int32 flag - 桌面(0),Shell_TrayWnd(1)
返回值
查看返回值表
注意事项
无
HD窗口_获取特殊窗口 - 基础示例
.版本 2
.子程序 多窗口资源路径管理示例
.局部变量 窗口序号, 整数型
.局部变量 游戏1路径, 文本型
.局部变量 游戏2路径, 文本型
游戏1路径 = 取运行目录 () + "\game1\images\"
游戏2路径 = 取运行目录 () + "\game2\images\"
' 为不同游戏窗口设置不同的资源路径
.计次循环首 (5, 窗口序号)
.如果 (窗口序号 ≤ 3)
' 前3个窗口使用游戏1的资源
HD资源_设置路径Ex (窗口序号, 游戏1路径)
调试输出 ("窗口" + 到文本 (窗口序号) + " 设置为游戏1资源路径")
.否则
' 后2个窗口使用游戏2的资源
HD资源_设置路径Ex (窗口序号, 游戏2路径)
调试输出 ("窗口" + 到文本 (窗口序号) + " 设置为游戏2资源路径")
.如果结束
.计次循环尾 ()
' 设置通用语言路径
HD资源_设置语言路径W (取运行目录 () + "\languages\")
HD窗口_获取特殊窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取特殊窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口关联句柄
描述
获取目标窗口句柄的关联窗口句柄
原型
__int64 __stdcall HCWIN_GetWindow(__int64 hwnd,__int32 flag)
参数
__int64 hwnd - 窗口句柄
__int32 flag - 获取父窗口(0),获取第一个子窗口(1),获取第一个窗口(2),获取最后个窗口(3),获取下一个窗口(4),获取上一个窗口(5),获取拥有者窗口(6),获取顶层窗口(7)
返回值
查看返回值表
注意事项
无
HD窗口_获取窗口关联句柄 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口关联句柄 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取顶层活动窗口句柄
描述
获取顶层活动窗口,可以获取到按键自带插件无法获取到的句柄
原型
__int64 __stdcall HCWIN_GetForegroundWindow();
返回值
查看返回值表
注意事项
无
HD窗口_获取顶层活动窗口句柄 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取顶层活动窗口句柄 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取顶层焦点窗口句柄
描述
获取顶层活动窗口中具有输入焦点的窗口句柄
原型
__int64 __stdcall HCWIN_GetForegroundFocus();
返回值
查看返回值表
注意事项
无
HD窗口_获取顶层焦点窗口句柄 - 基础示例
.版本 2
.子程序 测试前台驱动鼠标点击ex, 长整数型, 公开
.局部变量 窗口句柄, 整数型
.局部变量 客户区X, 整数型
.局部变量 客户区Y, 整数型
.局部变量 鼠标键, 整数型
.局部变量 延迟, 整数型
.局部变量 结果, 长整数型
' 获取目标窗口句柄
窗口句柄 = 取到整数 (寻找窗口 ("", "记事本"))
.如果 (窗口句柄 = 0)
调试输出 ("未找到目标窗口:记事本")
返回 (0)
.如果结束
' 设置点击参数
客户区X = 100
客户区Y = 50
鼠标键 = 1 ' 左键点击
延迟 = 50 ' 50毫秒延迟
调试输出 ("准备执行窗口内前台驱动鼠标点击")
调试输出 ("窗口句柄:", 窗口句柄)
调试输出 ("客户区坐标:(", 客户区X, ",", 客户区Y, ")")
' 执行窗口内前台驱动鼠标点击
结果 = HD驱动前台_前台鼠标点击ex (窗口句柄, 客户区X, 客户区Y, 鼠标键, 延迟)
.如果 (结果 > 0)
调试输出 ("前台驱动鼠标点击Ex成功")
.否则
调试输出 ("前台驱动鼠标点击Ex失败")
.如果结束
返回 (结果)
HD窗口_获取顶层焦点窗口句柄 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取顶层焦点窗口句柄 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_设置焦点到窗口
描述
设置输入焦点到窗口
原型
__int64 __stdcall HCWIN_SetForegroundFocus(__int64 hwnd);
参数
__int64 hwnd - 窗口句柄
返回值
查看返回值表
注意事项
无
HD窗口_设置焦点到窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_设置焦点到窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口客户区域
描述
获取窗口客户区域的宽度和高度
原型
__int64 __stdcall HCWIN_GetClientSize(__int64 hwnd,void* pW=NULL,void* pH=NULL);
参数
__int64 hwnd - 窗口句柄
void pW - 指向4字节宽度整数int 地址(供C/C++使用),其他语言调用HCEnv_GetRetJson获取字符串并自行解析
void pH - 指向4字节高度整数int 地址(供C/C++使用),其他语言调用HCEnv_GetRetJson获取字符串并自行解析
返回值
查看返回值表
注意事项
返回字符串:
w|h|
HD窗口_获取窗口客户区域 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口客户区域 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_获取窗口客户区域在屏幕
描述
获取窗口客户区域在屏幕上的位置
原型
__int64 __stdcall HCWIN_GetClientRectInWindow(__int64 hwnd,void* pRect=NULL);
参数
__int64 hwnd - 窗口句柄
void pRect - 指向RECT结构体地址(供C/C++调用)这个参数可以直接获取值,如果是其他语言可以HCEnv_GetRetJson获取字符串
返回值
查看返回值表
注意事项
返回字符串:
left|top|rifght|bottom|
RECT结构体:
typedefstructtagRECT{LONGleft;LONGtop;LONGright;LONGbottom;}RECT,* PRECT;
HD窗口_获取窗口客户区域在屏幕 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_获取窗口客户区域在屏幕 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_查找窗口
描述
查找符合类名或者标题名的顶层可见窗口,如果指定了parent,则在parent的第一层子窗口中查找
原型
__int64 __stdcall HCWIN_FindWindowEx(__int64 parentHwnd,char* className,char* title,BOOL bType=FALSE);
参数
__int64 parentHwnd - 窗口的父窗口句柄(不指定则从桌面窗口开始搜索)
char* className - 窗口类名(不指定为NULL/0)
char* title - 窗口标题(不指定为NULL/0)
bool bType - 真/1为模糊匹配假/0为完全匹配
返回值
查看返回值表
注意事项
无
HD窗口_查找窗口 - 基础示例
.版本 2
.子程序 _扩展文字识别
.局部变量 识别结果, 文本型
识别结果 = HD识字_识别文字Ex (0, "100,100,300,150", "system.txt", "ffffff")
调试输出 ("扩展文字识别结果: " + 识别结果)
HD窗口_查找窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_查找窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_查找顶层窗口
描述
查找顶层窗口句柄,父窗口句柄为NULL
原型
__int64 __stdcall HCWIN_FindTopWindow(char* className,char* title,BOOL bType=FALSE);
参数
char* className - 窗口类名(不指定为NULL/0/“”)
char* title - 窗口标题(不指定为NULL/0/“”)
bool bType - 真/1为模糊匹配假/0为完全匹配
返回值
查看返回值表
注意事项
无
HD窗口_查找顶层窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_查找顶层窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_枚举查找窗口
描述
根据指定进程以及其它条件,枚举系统中符合条件的窗口
原型
__int64 __stdcall HCWIN_EnumWindowByProcess(char* processName,char* className,char* title,__int32 filter,BOOL bType=FALSE);
参数
char* processName - 进程名(如果是完全匹配要加.exe,如果是模糊匹配自行判断)
char* className - 窗口类名(不指定为NULL/0)
char* title - 窗口标题(不指定为NULL/0)
__int32 filter - 1标题2类名4第一个PID8检测是否无父窗口16检查窗口是否显示32检索多PID多个标识可以用|累加
bool bType - 真/1为模糊匹配假/0为完全匹配
返回值
查看返回值表
0表示未找到
注意事项
单PID返回字符串:
hwnd
多PID返回字符串:根据创建时间排序过的
hwnd1|hwnd2|hwnd3|
HD窗口_枚举查找窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_枚举查找窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_枚举查找窗口Ex
描述
根据指定进程pid以及其它条件,枚举系统中符合条件的窗口,可以枚举到按键自带的无法枚举到的窗口
原型
__int64 __stdcall HCWIN_EnumWindowByProcessId(__int32 pid,char* className,char* title,__int32 filter,BOOL bType=FALSE);
参数
__int32 pid - 进程PID
char* className - 窗口类名(不指定为NULL/0)
char* title - 窗口标题(不指定为NULL/0)
__int32 filter - 1标题2类名8检测是否无父窗口16检查窗口是否显示多个标识可以用|累加
bool bType - 真/1为模糊匹配假/0为完全匹配
返回值
查看返回值表
0表示未找到
1表示找到结果存在返回json字符串
注意事项
单PID返回字符串:
hwnd
HD窗口_枚举查找窗口Ex - 基础示例
.子程序 _测试内存数据模板匹配
.局部变量 内存图片, 字节集
.局部变量 模板文件, 文本型
.局部变量 匹配结果, 整数型
.局部变量 内存X, 整数型
.局部变量 内存Y, 整数型
.局部变量 内存数组, HD_2个坐标, 数组
' 从网络获取图片到内存
.如果 (HTTP读文件 ("http://example.com/screenshot.jpg", 内存图片))
调试输出 ("网络图片下载成功,大小:", 取字节集长度 (内存图片), "字节")
模板文件 = "网页元素.bmp|按钮.bmp|链接.bmp"
' 直接在内存中进行模板匹配,无需保存文件
匹配结果 = HD智能识图_Tem找图从内存 (0, 内存图片, 模板文件, 0.8, 5, 真, 真, 假, 内存X, 内存Y, 内存数组)
.如果 (匹配结果 ≥ 0)
调试输出 ("内存模板匹配成功!")
调试输出 ("匹配模板序号:", 匹配结果)
调试输出 ("匹配位置: (", 内存X, ",", 内存Y, ")")
调试输出 ("匹配数量:", 取数组成员数 (内存数组))
.否则
调试输出 ("内存模板匹配失败")
.如果结束
.否则
调试输出 ("网络图片下载失败")
.如果结束
HD窗口_枚举查找窗口Ex - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_枚举查找窗口Ex - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_枚举进程
描述
根据指定进程名,枚举系统中符合条件的进程PID
原型
__int64 __stdcall HCWIN_EnumProcess(char* processName,BOOL bType=FALSE);
参数
char* processName - 进程名(如果是完全匹配要加.exe,如果是模糊匹配自行判断)
bool bType - 真/1为模糊匹配假/0为完全匹配
返回值
查看返回值表
0表示未找到
注意事项
返回字符串:
pid1|pid2|pid3|
HD窗口_枚举进程 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_枚举进程 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HD窗口_枚举窗口
描述
根据指定条件,枚举系统中符合条件的窗口,可以枚举到按键自带的无法枚举到的窗口
原型
__int64 __stdcall HCWIN_EnumWindow(__int64 parentHwnd,char* className,char* title,__int32 filter,BOOL bType=FALSE,BOOL bChild=FALSE);
参数
__int64 parentHwnd - 窗口的父窗口句柄(可以不指定为NULL)
char* className - 窗口类名(不指定为NULL/0)
char* title - 窗口标题(不指定为NULL/0)
__int32 filter - 1标题2类名4检测父窗口是否是指定8检测是否无父窗口16检查窗口是否显示多个标识可以用|累加
bool bType - 真/1为模糊匹配假/0为完全匹配
bool bChild - 根据指定条件,枚举指定父句柄的子窗口
返回值
查看返回值表
0表示未找到
注意事项
多句柄返回字符串:
hwnd1|hwnd2|hwnd3|
HD窗口_枚举窗口 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HD窗口_枚举窗口 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")