fjw18 发表于 2011-2-26 15:16:36

将鼠标移动到“控件”上的方法,笔者自己研究的!

本帖最后由 fjw18 于 2011-3-5 17:25 编辑

笔者在做金山毒霸的自动安装脚本时,有个路径选择,这时你如果用ControlClick函数,弹出的菜单会在鼠标的位置出现,因此,为了更方便,笔者经过研究,终于解决了移动鼠标的方法,这个不会受到屏幕分辨率的影响。脚本如下:
Dim $TT1="金山毒霸2011 安装向导"
Dim $TX1="我同意金山毒霸授权与隐私协议"
Dim $WPos,$Pos
Run("KIS110119_DOWN_99_10.exe")
WinWait($TT1,$TX1)
WinActivate($TT1,$TX1)
$WPos=WinGetPos($TT1,$TX1)
MsgBox(0, "当前激活窗口的状态(x,y,宽度,高度):", $WPos & " " & $WPos & " " & $WPos & " " & $WPos)
$Pos=ControlGetPos($TT1,$TX1,1039)
MsgBox(0, "窗口状态:", "位置: " & $pos & "," & $pos & " 大小: " & $pos & "," & $pos )
MouseMove($WPos+$pos+Int($Pos/2),$WPos+$pos+Int($Pos/2),0)
ControlClick($TT1,$TX1,"Static6")

中间的MsgBox是为了操作方便,可以删除。关于函数的参数,可以参考帮助。跟大家分享一下。

由于代码比较枯燥,因此我又后期画了个图,供大家参考,方便理解,网址:http://www.autoitx.com/forum.php?mod=viewthread&tid=22482&rpid=272597&ordertype=0&page=1#pid272597

fjw18 发表于 2011-2-26 22:55:17

大家别光看,有好的方法也可以说说,这样才方便交流。

东京恶魔 发表于 2011-3-1 11:30:06

楼主顶你,虽然我还看不太懂!但是你的把好方法分享出来的精神我是灰常支持的!

zhongzijie 发表于 2011-3-1 21:05:24

謝謝fjw18 分享

fjw18 发表于 2011-3-4 12:23:01

这个没什么难的,就是说屏幕的最左上角的坐标是x,y(0,0),而窗体的坐标是相对屏幕的坐标而言的,函数WinGetPos就是取得窗体的坐标及窗体的大小;窗体里的控件的坐标是相对窗体而言的,窗体的最左上角是坐标点(0,0),假如有个按钮在窗体的(0,0)处,您如果想模拟鼠标点击该键,把坐标设为(0,0)就成了点击屏幕的最左上角了,因为鼠标操作函数的坐标点都是相对屏幕而言的,因此需要将控件的相对坐标加上窗体的相对屏幕坐标得到控件相对屏幕的坐标,这样就不会点击失误了。

guotieyun 发表于 2011-3-4 15:59:45

支持楼主 定

rosheen 发表于 2011-3-9 22:35:13

喜欢这样的楼主,无私共享,虽然看不懂。好好把你顶一下。。

17311799 发表于 2011-3-19 09:45:03

支持下{:face (411):}

dyd 发表于 2011-5-8 18:26:00

楼主顶你!!!

ljh 发表于 2011-5-14 18:55:23

喜欢这样的楼主,无私共享,虽然看不懂。{:face (355):}

yinbinly 发表于 2011-12-23 12:28:15

看不懂,楼主可以解释下代码吗???

duguoffice 发表于 2011-12-24 14:38:13

好像可以直接控件就可以了。。

fjw18 发表于 2012-1-6 09:26:29

控件是点不到的

yorker0503 发表于 2012-7-28 01:02:29

不是很难~~

whitehead 发表于 2012-8-2 01:16:50

回复 1# fjw18

请问代码里“"Static6"”代表什么?
页: [1] 2 3
查看完整版本: 将鼠标移动到“控件”上的方法,笔者自己研究的!