递归火山软件开发平台

标题: 如何一次性取所有主窗口的句柄 [打印本页]

作者: Q624353765    时间: 2023-12-11 19:12
标题: 如何一次性取所有主窗口的句柄
本帖最后由 Q624353765 于 2023-12-12 10:00 编辑

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

作者: hcwanz    时间: 2023-12-11 19:54
把窗口都放一个数组里

作者: urenai    时间: 2023-12-11 21:46
enumwindows()

有点近视也不知道这手打这个api错没错
作者: 小蜗牛    时间: 2023-12-11 23:11
EnumChildWindows 枚举所有子窗口
作者: Q624353765    时间: 2023-12-12 10:00
小蜗牛 发表于 2023-12-11 23:11
EnumChildWindows 枚举所有子窗口

不是子窗口,是主窗口
作者: tongrui0809    时间: 2023-12-12 10:07
EnumWindows
作者: urenai    时间: 2023-12-12 11:05
<火山程序 类型 = "通常" 版本 = 1 />

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

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

}

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



    }
    返回 (句柄 != 0)
}

作者: urenai    时间: 2023-12-12 11:25
<火山程序 类型 = "通常" 版本 = 1 />

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

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


        调试输出 (类别, 句柄)

    }
    返回 (句柄 != 0)
}

作者: urenai    时间: 2023-12-12 11:29
其实可以申请9个字节传参,
1 做标志位
2-9=8字节 记录数组指针。
最后直接指针转数组。
作者: a759077146    时间: 2023-12-12 13:10
精易模块里的窗口_枚举
作者: Q624353765    时间: 2023-12-12 15:44
a759077146 发表于 2023-12-12 13:10
精易模块里的窗口_枚举

能把这个方法复制出来吗
作者: Q624353765    时间: 2023-12-12 15:48
urenai 发表于 2023-12-12 11:25
方法 枚举所有句柄
{
    @ EnumWindows((WNDENUMPROC)@,1);

通过你的这个方法怎么会有取不玩的窗口句柄,通过类别是区别不出主窗口的




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4