好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

遍历符合窗口标题的句柄.docx

13页
  • 卖家[上传人]:拖***
  • 文档编号:262010356
  • 上传时间:2022-03-05
  • 文档格式:DOCX
  • 文档大小:21.06KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本文格式为Word版,下载可任意编辑遍历符合窗口标题的句柄 篇一:按键精灵开发教程:遍历子窗口 按键精灵开发教程:遍历子窗口 来源:按键学院【按键精灵】 遍历一个窗口的全体子窗口,返回符合条件(标题或类名)的窗口句柄,请写出函数(遍历子窗口). 题意解析 假设红色框框圈起来的就是我们要遍历的窗口 那么,我们要遍历到的是这个窗口下的全体子窗口,二级子窗口,三级子窗口……有多少级都要遍历下去 假设遍历到类名或标题符合的子窗口,那么记录下来 以上图的窗口为例, 假设我们设置的返回条件是窗口类名=Button, 那么只有 窗口句柄为65638这个子窗口符合条件,那么返回窗口句柄:65638假设我们设置的返回条件是窗口类名=ToolbarWindow32 , 那么有两个子窗口符合条件,那么返回这两个窗口的窗口句柄:65632和65636 有多少童鞋坑在了这一题呢? 是否写了很长的一段代码,但是测试的时候察觉就是行不通? 不必烦扰不必彷徨,我今天带来了 工程师06,也就是咱们骚气的06老师的精品代码, 十六行代码搞定遍历子窗口 思路 遍历子窗口源码共享 Function 遍历子窗口(Parent, ClassName) Dim RetStr,TmpHdr //定义局部变量 Do TmpHdr = Plugin.Window.FindEx(Parent, TmpHdr, 0, 0) //查找子窗口 If TmpHdr Then // 判断是否有查找到子窗口 If Plugin.Window.GetClass(TmpHdr) = ClassName Then //判断窗口类名 RetStr = RetStr TmpHdr |//符合那么记录窗口句柄 RetStr = RetStr 遍历子窗口(TmpHdr, ClassName)//递归探索下一级窗口 Else RetStr = RetStr 遍历子窗口(TmpHdr, ClassName)//递归探索下一级窗口 End IfEnd If Loop While TmpHdr //假设没有子窗口那么退出循环 遍历子窗口 = RetStr //将查找到的符合的窗口句柄返回 End Function 代码分析 要怎么理解递归呢? 《盗梦空间》不知道大伙有没有看过,我很热爱这部电影,刺激带感……咳咳 言归正传 我们可以把递归比作梦境来理解。

      整个 遍历子窗口函数就是一个梦境 当我们在脚本开头的时候,还清楚着 TracePrint 遍历子窗口(65608,Button) 执行这句的时候,我们就带着 65608,Button这两个参数值进入了第一重梦境 第一重梦境 先将 RetStr,TmpHdr 两个变量定义成局部变量,局部变量只作用于当前梦境,进入下一重梦境,它们会初始化 进入循环,查找子窗口 我们带来的两个参数,65608 是传递给parent的 ,而 Tmphdr 此刻的值是0/空 带入 TmpHdr = Plugin.Window.FindEx(Parent, TmpHdr, 0, 0) 中运算: TmpHdr = Plugin.Window.FindEx(65608, 0, 0, 0) TmpHdr = 65614 判断是否有子窗口 If TmpHdr Then End If TmpHdr = 65614 有子窗口,那么判断窗口句柄类名 我们带来的两个参数,Button 是传递给 ClassName的 带入 if Plugin.Window.GetClass(TmpHdr) = ClassName Then 中运算: 当前子窗口的类名为:TrayNotifyWnd 不符合要求,那么执行else后面的语句: RetStr = RetStr 遍历子窗口(TmpHdr, ClassName) 执行这一句,又调用了 遍历子窗口 函数,带着TmpHdr, ClassName 进入了其次重梦境。

      篇二:易语言模拟输入方法和窗口句柄的获取 易语言模拟输入方法和窗口句柄的获取 IE开启不同选项卡,察觉却有一致的句柄 开启新的选项卡时,务必重新对句柄举行初始化可以用以下三种方式来取句柄, · 直接用顶级句柄0 · 窗口_取句柄_模糊 (, “IEFrame”)) · IEhandle (“IEFrame”, “用户登录_微贷网官网专业的理财平台 - Windows Internet Explorer”),这句页面不存在时,标题更换了,取不到句柄 开启新页面时,务必参与延时,等待页面载入完成,可用网页填表.就绪判断 (“可用余额”) 穿透网页框架时,要用微凉网页填表模块 取余额时,用标签名可取网页填表.取操作元素 (“SPAN[15]”, 元素对象, ) 对链接不能用网页填表.按钮_点击 (“id=submit”, 1),而要用以下取元素对象再点击的方式 .假设 (网页填表.取操作元素 (“innerText=我要投资”, 元素对象, )) 网页填表.操作元素_点击 (元素对象) 可能是由于链接不能用按纽的形式点击 .否那么调试输出 (“获取操作元素对象innerText=我要投资失败!”) 若取全体的窗口句柄和窗口标题时 窗口_枚举子窗口 (0, 子句柄数组, ) .计次循环首 (5, i) 计次循环首 (取数组成员数 (子句柄数组), i) 输出调试文本 (取窗口标题 (子句柄数组 [i])) .计次循环尾 () 对账号及密码输入,可用 网页填表.文本框_写内容 (“name=userName”, 编辑框1.内容, ) 网页填表.文本框_写内容 (“name=password”, 编辑框3.内容, ) 模拟输入方式 方式一 置剪辑板文本 (“918236”) 网页填表.取操作元素 (“name=password”, 元素对象, ) 编辑框3.获取焦点 () 网页填表.操作元素_置焦点 (元素对象) 务必要焦点,否那么密码没地方输入 模拟按键 (#Ctrl键, #V键, ) 务必加延时,否那么网页递交时密码还未提交 网页填表.按钮_点击 (“btn_submit”)‘该方式不行,务必用上面操作元素点击的方式 延迟 (1000) 方式二 网页填表.取操作元素 (“name=password”, 元素对象, ) 编辑框3.获取焦点 () 网页填表.操作元素_置焦点 (元素对象) 务必要焦点,否那么密码没地方输入 模拟按键 (#键9, , ) 模拟按键 (#键1, , ) 模拟按键 (#键8, , ) 模拟按键 (#键2, , ) 模拟按键 (#键3, , ) 模拟按键 (#键6, , ) 务必加延时,否那么网页递交时密码还未提交,此方法获得告成 模拟按键 (#键9, #键1, #键8) 模拟按键 (#键2, #键3, #键6) 务必加延时,否那么网页递交时密码还未提交,此方法也获得告成 延迟 (1000) 篇三:VCMFC编程各种窗口句柄获取函数详解 AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()-m_hWnd; GetTopWindow 函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。

      函数原型:HWND GetTopWindow(HWND hWnd); 参数: hWnd:被查序的父窗口的句柄假设该参数为NULL,函数返回Z序顶部的窗口句柄 返回值: 假设函数告成,返回值为在Z序顶部的子窗口句柄假设指定的窗口无子窗口,返回值为NULL GetForegroundWindow 函数功能:该函数返回当前系统的前台窗口的窗口句柄 函数原型:HWND GetForegroundWindow(VOID) 返回值:函数返回前台窗回的句柄 GetActiveWindow 函数功能:该函数可以获得与调用该方法的线程的消息队列相关的活动窗口的窗口句柄(就是取得当前进程的活动窗口的窗口句柄) 函数原型:HWND GetActiveWindow(VOID) 返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄否那么,返回值为NULL GetSafeHwnd 函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安好的方法是使用GetSafeHwnd()函数 通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //梦想找到资源管理器HWND hwnd = pwnd-m_hwnd; //得到它的HWND 这样的代码当开头得到的pwnd为空的时候就会展现一个“General protection error”,并关闭应用程序,由于一般不能对一个NULL指针访问其成员,假设用下面的代码:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //梦想找到资源管理器HWND hwnd = pwnd-GetSafeHwnd(); //得到它的HWND 就不会展现问题,由于尽管当pwnd是NULL时,GetSafeHwnd依旧可以用,只是返回NULL IsWindowVisible 函数功能:该函数获得给定窗口的可视状态。

      函数原型:BOOL IsWindowVisible(HWND hWnd); 参数; hWnd:被测试窗口的句柄 返回值: 假设指定的窗口及其父窗口具有WS_VISIBLE风格,返回值为非零;假设指定的窗口及其父窗口不具有WS_VISIBLE风格,返回值为零由于返回值说明了窗口是否具有Ws_VISIBLE风格,因此,即使该窗口被其他窗口遮盖,函数返回值也为非零 备注: 窗口的可视状态由 WS_VISIBLE位指示当设置了WS_VISIBLE位,窗口就可显示,而且只要窗口具有WS_VISIBLE风格,任何画在窗口的信息都将被显示 IsWindow 函数功能:该函数确定给定的窗口句柄是否标示一个已存在的窗口 函数原型:BOOL IsWindow(HWND hWnd); 参数: hWnd:被测试窗口的句柄 返回值: 假设窗口句柄标识了一个已存在的窗口,返回值为TURE;假设窗口句柄未标识一个已存在窗口,返回值为FALSE FindWindow HWND FindWindow(LPCSTR lpClassName。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.