找回密码
 加入
搜索
查看: 4370|回复: 9

[AU3基础] 怎样能够对控件中的控件操作?

  [复制链接]
发表于 2011-2-19 20:46:41 | 显示全部楼层 |阅读模式
本帖最后由 jd19970829 于 2011-2-21 01:20 编辑

我使用AUTOIT窗口信息工具的时候,只能得到这个控件是一个BUTTON,但是很明显这个BUTTON种包含了很多其他的控件,比如这个窗口里面的选项,我用窗口工具只能得到它是Button 1,但是它里面包含了2个Checkbox控件,而我是要对这2个Checkbox控件进行勾选操作,再比如说这个电源控件,用窗口信息工具只能得到是一个BUTTON 5,但是它里面很明显是一个Combo控件,我也是要对这个Combo进行下拉选择操作,但是这些控件的信息我怎么能得到呢?也就是说我怎样能对一个控件里面的控件进行准确的操作,请指点一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-2-19 21:01:24 | 显示全部楼层
调用ClientToScreen将客户区坐标转换为屏幕坐标,根据屏幕坐标 调用WinowFromPoint获取控件句柄。
发表于 2011-2-20 12:00:23 | 显示全部楼层
回复 2# pusofalse


    您说的几个函数都是MSDN里的,AU3没有, 不懂
 楼主| 发表于 2011-2-20 16:46:49 | 显示全部楼层
是呀,这几个函数AU3里面都没有,而且肯定有其他的办法。
看这篇帖子
http://www.autoitx.com/archiver/tid-16956.html
ShellExecute("C:\Program Files\SogouInput\5.0.1.4185\config.exe")
sleep(800)
$pos = WinGetPos("搜狗拼音输入法设置")
If IsArray($pos) Then
   $x=MouseGetPos(0)
   $y=MouseGetPos(1)
   WinActivate ("搜狗拼音输入法设置")
   MouseClick ( "left",$pos[0]+80,$pos[1]+120,1,0)
   ControlCommand("搜狗拼音输入法设置","切换英文状态时保留输入窗口中已经存在的字符并上屏","Button7","Check","")
   ControlClick("搜狗拼音输入法设置","","Button89")
   MouseClick ( "left",$pos[0]+80,$pos[1]+148,1,0)
   ControlCommand("搜狗拼音输入法设置","开启皮肤推荐","[CLASS:Button;TEXT:开启皮肤推荐]","UnCheck","")
   ControlClick("搜狗拼音输入法设置","","Button89")

   MouseClick ( "left",$pos[0]+80,$pos[1]+236,1,0)
   ControlCommand("搜狗拼音输入法设置","不自动升级","Button12","Check","")
   ControlCommand("搜狗拼音输入法设置","P2P升级加速:使用P2P方法,使您的升级速度更稳定更快速","Button17","UnCheck","")
   ControlClick("搜狗拼音输入法设置","","Button87")
   MouseMove($x,$y)
EndIf
exit

这段代码里面
ControlCommand("搜狗拼音输入法设置","不自动升级","Button12","Check","")
   ControlCommand("搜狗拼音输入法设置","P2P升级加速:使用P2P方法,使您的升级速度更稳定更快速","Button17","UnCheck","")
他这里的BUTTON12何BUTTON17确实是BUTTON空间里面的2个按钮空间,我已经测试过,能准确的对BUTTON立面的2个BUTTON控件进行操作,主要的问题是button12和button17他是怎么得到的,用串口信息工具是绝对看不到的,、他的代码里面也没有P版主说的用XX函数来找句柄的代码
真的很想知道他是怎样得到这些按钮的具体CLASS ID的
发表于 2011-2-20 22:03:38 | 显示全部楼层
可以用Au3安装目录下的英文版 Au3Info 试试,也可以用我以前写的那个探测工具 http://www.autoitx.com/forum.php ... p;extra=&page=1
 楼主| 发表于 2011-2-21 01:37:57 | 显示全部楼层
回复 5# afan


    多谢啊,测试了一下,果然是探测工具的问题,英文版的能探测出绝大多数的空间,中文版的很多控件中的空间就不能探测到,但是也遇到一个问题,及少数的控件中的控件中文版的能探测到,英文版的居然探测不到,真是不知道怎么回事,都是同一个工具,居然还有区别
发表于 2011-2-21 19:21:56 | 显示全部楼层
COM
IAccessible?
发表于 2011-2-22 01:10:09 | 显示全部楼层
还不会写呢,学习
发表于 2011-2-26 09:52:43 | 显示全部楼层
可以用Au3安装目录下的英文版 Au3Info 试试,也可以用我以前写的那个探测工具
afan 发表于 2011-2-20 22:03



是个好东西。要收藏下。
发表于 2011-2-26 17:12:45 | 显示全部楼层
路过......
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 13:49 , Processed in 0.078463 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表