枚举特殊窗口 - EnumWindowSuper
函数简介
根据多种条件组合枚举系统中符合条件的窗口。
接口名称
EnumWindowSuper
DLL调用
long EnumWindowSuper(long ola, string spec1, int flag1, int type1, string spec2, int flag2, int type2, int sort);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ola | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| spec1 | 字符串 | 查找串1,内容取决于flag1的值。 |
| flag1 | 整数型 | 查找串1的类型,详见下方说明。 |
| type1 | 整数型 | 查找串1的匹配方式:0 精确匹配,1 模糊匹配。 |
| spec2 | 字符串 | 查找串2,内容取决于flag2的值。 |
| flag2 | 整数型 | 查找串2的类型,取值同flag1。 |
| type2 | 整数型 | 查找串2的匹配方式:0 精确匹配,1 模糊匹配。 |
| sort | 整数型 | 排序方式:0 不排序,1 按窗口打开顺序排序。 |
flag 查找串类型
| 值 | 说明 |
|---|---|
| 0 | 标题。 |
| 1 | 程序名字(如notepad)。 |
| 2 | 类名。 |
| 3 | 程序路径(不含盘符,如\windows\system32)。 |
| 4 | 父句柄(十进制字符串)。 |
| 5 | 父窗口标题。 |
| 6 | 父窗口类名。 |
| 7 | 顶级窗口句柄(十进制字符串)。 |
| 8 | 顶级窗口标题。 |
| 9 | 顶级窗口类名。 |
示例
C++
long instance = CreateCOLAPlugInterFace();
// spec1按标题模糊匹配, spec2按类名精确匹配, 不排序
long result = EnumWindowSuper(instance, "记事本", 0, 1, "Notepad", 2, 0, 0);
if (result != 0) {
char* hwnds = GetStringFromPtr(result);
printf("匹配窗口: %s\n", hwnds);
FreeStringPtr(result);
}
Python
# 待补充
返回值
字符串指针地址,包含所有匹配的窗口句柄,格式为 "hwnd1,hwnd2,hwnd3"。
注意事项
- DLL调用返回字符串指针地址,需要调用 FreeStringPtr 接口释放内存。
