jd19970829 发表于 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进行下拉选择操作,但是这些控件的信息我怎么能得到呢?也就是说我怎样能对一个控件里面的控件进行准确的操作,请指点一下。

pusofalse 发表于 2011-2-19 21:01:24

调用ClientToScreen将客户区坐标转换为屏幕坐标,根据屏幕坐标 调用WinowFromPoint获取控件句柄。

chenronting 发表于 2011-2-20 12:00:23

回复 2# pusofalse


    您说的几个函数都是MSDN里的,AU3没有, 不懂
{:face (382):}

jd19970829 发表于 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+80,$pos+120,1,0)
   ControlCommand("搜狗拼音输入法设置","切换英文状态时保留输入窗口中已经存在的字符并上屏","Button7","Check","")
   ControlClick("搜狗拼音输入法设置","","Button89")
   MouseClick ( "left",$pos+80,$pos+148,1,0)
   ControlCommand("搜狗拼音输入法设置","开启皮肤推荐","","UnCheck","")
   ControlClick("搜狗拼音输入法设置","","Button89")

   MouseClick ( "left",$pos+80,$pos+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的

afan 发表于 2011-2-20 22:03:38

可以用Au3安装目录下的英文版 Au3Info 试试,也可以用我以前写的那个探测工具 http://www.autoitx.com/forum.php?mod=viewthread&tid=17882&extra=&page=1

jd19970829 发表于 2011-2-21 01:37:57

回复 5# afan


    多谢啊,测试了一下,果然是探测工具的问题,英文版的能探测出绝大多数的空间,中文版的很多控件中的空间就不能探测到,但是也遇到一个问题,及少数的控件中的控件中文版的能探测到,英文版的居然探测不到,真是不知道怎么回事,都是同一个工具,居然还有区别

bsmagic 发表于 2011-2-21 19:21:56

COM
IAccessible?

myang 发表于 2011-2-22 01:10:09

还不会写呢,学习

binshiwo 发表于 2011-2-26 09:52:43

可以用Au3安装目录下的英文版 Au3Info 试试,也可以用我以前写的那个探测工具
afan 发表于 2011-2-20 22:03 http://www.autoitx.com/images/common/back.gif


是个好东西。要收藏下。

wsfda 发表于 2011-2-26 17:12:45

{:face (382):}路过......
页: [1]
查看完整版本: 怎样能够对控件中的控件操作?