前段时间,我一直认为,通过AutoIt进行自动化操作,也只有几个方法可以用,它们只是controlClick, controlsend等如下图:

我一直认为,AutoIt的所有的GUI 方法,都是用来创建界面使用的。

今天,开发找我,让我把他的一个GUI页面上所有的资源获取下来:

页面上一个ListView中,一共有大约70个list,我现在需要遍历这70个list,然后当该list获取焦点的时候,右键点击,然后在弹出框中点击第二个选项,从而保存图片?

我一直期待能找到一个函数,比喻:ControlGetFocusPos,可是没有这个函数,mouseGetPos函数只能获取鼠标所在的位置,google搜索也得不到想要的答案。

问题最终还是被我解决了:

1. 遍历每个list的位置坐标X, Y;

2. 在该坐标上右键点击;

3. 用键盘上的Down和Enter键,点击弹出框的第二个按钮;

4. 保存相应资源

具体代码如下:

#include <GuiListView.au3>
;获取窗口句柄
$handle = WinGetHandle(".NET Reflector 6")
WinActivate($handle)
;获取控件句柄;
$control = ControlGetHandle($handle,"","WindowsForms10.SysListView32.app.0.232467a_r11_ad11")
;获取列表中List数目
$count = ControlListView($handle,"",$control,"GetItemCount") for $i = to
;获取位置信息
$x = _GUICtrlListView_GetItemPositionX($control, $i-)
$y = _GUICtrlListView_GetItemPositionY($control, $i-) ControlClick($handle,"", $control,"right",, $x, $y)
ControlSend($handle,"",$control,"{down 2}{enter}")
WinWait("Save As")
WinWaitActive("Save As")
$handle2 = WinGetHandle("Save As")
ControlSetText($handle2,"", "Edit1", "C:\Users\chenpassion\Desktop\Autoit\pic\" & $i & ".png")
ControlClick($handle2,"","Button1")
WinWaitClose("Save As")
ControlSend($handle,"",$control,"{down}")
Next

看来又有得深入学习了!

_GUICtrl***函数,是非常强大的,可以做更多的识别页面元素,操作Windows GUI 控件。

最新文章

  1. 【腾讯bugly干货分享】微信Android热补丁实践演进之路
  2. EF DbContext 并发执行时可能出现的问题
  3. Mybatis 复习 Mybatis 配置 Mybatis项目结构
  4. Keep-Alive 总结
  5. jsonp跨域问题
  6. clock gating and PLL
  7. Socket通信(转)
  8. [Asp.net]说说密码框和只读框
  9. buffer busy waits
  10. ado.net数据库操作(2)
  11. TCP/IP的网际层协议——ARP
  12. 湘潭oj1203/邀请赛A称号 数论+java睑板
  13. JS滚动加载
  14. Java代码风格和在idea中的一些设置
  15. mac上安装vue项目
  16. java.io.IOException: There appears to be a gap in the edit log. We expected txid ***, but got txid
  17. 分享几个写 demo 的思路
  18. MongoDB——待整理
  19. 200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?
  20. 关于mysql的删除和安装

热门文章

  1. S3C2440 IIS操作 uda134x录放音
  2. Irrlicht 3D Engine 笔记系列之 教程4 - Movement
  3. [ssh新闻公布系统三]存储新闻
  4. c语言-完全背包问题
  5. 转:DDR原理详解
  6. wlpt的提现功能
  7. 【iOS开发-79】利用Modal方式实现控制器之间的跳转
  8. Html5的placeholder属性(IE兼容)
  9. etymology-I
  10. 传递一个父id返回所有子id的用法,可用于删除父级以下的所有子级