FilterWindowPos 根据窗口坐标筛选窗口句柄
🎯功能
根据窗口坐标筛选窗口句柄。这个函数可对使用本插件中的 EnumWindowA 函数或 EnumWindowT 函数的返回值进一步处理,根据窗口大小筛选出需要的窗口据句柄。
📜语法
HwndArray = Plugin.WndEx7_71.FilterWindowPos(窗口句柄数组, 窗口句柄, x, y, 模式)
📥参数
参数 | 数据类型 | 解释 |
---|---|---|
窗口句柄数组 | 长整型数数组 | 窗口句柄的数组,可以通过本插件中的 EnumWindowA 函数或 EnumWindowT 函数获得。 |
窗口句柄 | 长整型数 | 要筛选的所有窗口的父窗口或者祖先窗口的窗口句柄,取0 时用屏幕坐标筛选窗口句柄。 |
x | 长整型数 | 参数2窗口句柄 的窗口客户区横坐标,参数2窗口句柄 取0 时为屏幕横坐标。 |
y | 长整型数 | 参数2窗口句柄 的窗口客户区纵坐标,参数2窗口句柄 取0 时为屏幕纵坐标。 |
模式 | 长整型数 | 取0 时,筛选的是参数3x 和参数4y 的坐标在窗口区域内的窗口句柄;取1 时,筛选的是参数3x 和参数4y 的坐标是窗口左上角的窗口句柄。 |
📤返回
长整型数数组
。返回符合条件的窗口句柄数组,无符合条件的窗口句柄和失败时返回的是大小为0的一维数组。
💡示例
//获得所有顶层窗口的窗口句柄
HwndArray = Plugin.WndEx7_71.EnumWindowA(0, 0, 0, 0)
//筛选窗口区域包含屏幕坐标(150,180)的窗口句柄
HwndArray = Plugin.WndEx7_71.FilterWindowPos(HwndArray, 0, 150, 180, 0)
n = UBound(HwndArray)
If n=-1 Then
MsgBox "窗口未找到", 4096
Else
MsgBox "找到窗口" & CStr(n+1) & "个,窗口句柄如 下:" & vbCrLf & Join(HwndArray, ","), 4096
End If
📘备注
无