• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201501期】六级认证--遍历子窗口源码分享 [复制链接]

1#

六级认证--遍历子窗口源码分享

本文按键学院提供技术支持


按键学院交流群(1群已满):376122403

零基础学按键精灵群(2群):372671254




遍历一个窗口的所有子窗口,返回符合条件(标题或类名)的窗口句柄,请写出函数(遍历子窗口).






>>题意解析

您所在的用户组无法下载或查看附件



假设红色框框圈起来的就是我们要遍历的窗口。
那么,我们要遍历到的是这个窗口下的所有子窗口,二级子窗口,三级子窗口……有多少级都要遍历下去。
如果遍历到类名或标题符合的子窗口,则记录下来。



以上图的窗口为例,
假设我们设置的返回条件是窗口类名=Button
那么只有 窗口句柄为65638这个子窗口符合条件,则返回窗口句柄:65638
假设我们设置的返回条件是窗口类名=ToolbarWindow32
那么有两个子窗口符合条件,则返回这两个窗口的窗口句柄:65632和65636


有多少童鞋坑在了这一题呢?
是否写了很长的一段代码,但是测试的时候发现就是行不通?

不必烦恼不必彷徨,小编今天带来了 工程师06,也就是咱们骚气的06老师的精品代码,
十六行代码搞定遍历子窗口



思路

您所在的用户组无法下载或查看附件



遍历子窗口源码分享
  1. Function 遍历子窗口(Parent, ClassName)
  2. Dim RetStr,TmpHdr //定义局部变量
  3. Do
  4. TmpHdr = Plugin.Window.FindEx(Parent, TmpHdr, 0, 0) //查找子窗口
  5. If TmpHdr Then // 判断是否有查找到子窗口
  6. If Plugin.Window.GetClass(TmpHdr) = ClassName Then //判断窗口类名
  7. RetStr = RetStr & TmpHdr & "|" //符合则记录窗口句柄
  8. RetStr = RetStr & 遍历子窗口(TmpHdr, ClassName)//递归寻找下一级窗口
  9. Else
  10. RetStr = RetStr & 遍历子窗口(TmpHdr, ClassName)//递归寻找下一级窗口
  11. End If
  12. End If
  13. Loop While TmpHdr //如果没有子窗口则退出循环
  14. 遍历子窗口 = RetStr //将查找到的符合的窗口句柄返回
  15. End Function
复制代码

代码分析
要怎么理解递归呢?
《盗梦空间》不知道大伙有没有看过,小编很喜欢这部电影,刺激、带感……咳咳 言归正传
我们可以把递归比作梦境来理解。


整个 遍历子窗口 函数就是一个梦境
当我们在脚本开始的时候,还清醒着。
TracePrint 遍历子窗口(65608,"Button")
执行这句的时候,我们就带着 65608,"Button"这两个参数值进入了第一重梦境




    已有1评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/10/14 9:55:45 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    很好很强大

    3#

    头大了啊看的

    4#

    这个必然要递归,就是递归有点不太好理解~~~~

    5#

    11111111111

    6#

    ~~~~~~~~~~

    7#

    看看

    8#


    9#

    as大幅杀跌

    10#

    看看 精彩不

    11#

    见面过很快会哭

    12#

    666666

    13#

    我爱学习,学习使我快乐

    14#

    15156

    15#

    666666666666666666

    16#

    是的撒到我寝室的期望的武器大全我

    17#


    18#

    11111111111111111111

    19#


    20#


    发新话题 回复该主题