Q624353765 发表于 2023-12-11 19:12:10

如何一次性取所有主窗口的句柄

本帖最后由 Q624353765 于 2023-12-12 10:00 编辑

如何一次性取所有主窗口的句柄

hcwanz 发表于 2023-12-11 19:54:03

把窗口都放一个数组里

urenai 发表于 2023-12-11 21:46:51

enumwindows()

有点近视也不知道这手打这个api错没错

小蜗牛 发表于 2023-12-11 23:11:24

EnumChildWindows 枚举所有子窗口

Q624353765 发表于 2023-12-12 10:00:17

小蜗牛 发表于 2023-12-11 23:11
EnumChildWindows 枚举所有子窗口

不是子窗口,是主窗口

tongrui0809 发表于 2023-12-12 10:07:12

EnumWindows

urenai 发表于 2023-12-12 11:05:01

<火山程序 类型 = "通常" 版本 = 1 />

方法 取所有主窗口 <公开 静态>
{

    @ EnumWindows((WNDENUMPROC)@<接口函数>,0);

}

方法 接口函数 <公开 静态 类型 = 逻辑型>
参数 句柄 <类型 = 变整数>
参数 cd <类型 = 整数>
{
    如果 (句柄 != 0)
    {
      调试输出 (句柄)



    }
    返回 (句柄 != 0)
}

urenai 发表于 2023-12-12 11:25:20

<火山程序 类型 = "通常" 版本 = 1 />

方法 枚举所有句柄 <公开 静态>
{
    @ EnumWindows((WNDENUMPROC)@<接口函数>,1);
}

方法 接口函数 <静态 类型 = 逻辑型>
参数 句柄 <类型 = 变整数>
参数 类别 <类型 = 逻辑型 注释 = "真 主窗口, 假 子窗口">
{
    如果 (句柄 != 0)
    {
      @ if (@<类别>){EnumChildWindows((HWND)@<句柄>,(WNDENUMPROC)@<接口函数>,0);}


      调试输出 (类别, 句柄)

    }
    返回 (句柄 != 0)
}

urenai 发表于 2023-12-12 11:29:13

其实可以申请9个字节传参,
1 做标志位
2-9=8字节 记录数组指针。
最后直接指针转数组。

a759077146 发表于 2023-12-12 13:10:01

精易模块里的窗口_枚举
页: [1] 2
查看完整版本: 如何一次性取所有主窗口的句柄