找回密码
 加入
搜索
查看: 49409|回复: 34

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

 火... [复制链接]
发表于 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[0] & " " & $WPos[1] & " " & $WPos[2] & " " & $WPos[3])
$Pos=ControlGetPos($TT1,$TX1,1039)
MsgBox(0, "窗口状态:", "位置: " & $pos[0] & "," & $pos[1] & " 大小: " & $pos[2] & "," & $pos[3] )
MouseMove($WPos[0]+$pos[0]+Int($Pos[2]/2),$WPos[1]+$pos[1]+Int($Pos[3]/2),0)
ControlClick($TT1,$TX1,"Static6")

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

由于代码比较枯燥,因此我又后期画了个图,供大家参考,方便理解,网址:http://www.autoitx.com/forum.php ... mp;page=1#pid272597

评分

参与人数 1金钱 +10 收起 理由
yinbinly + 10 看懂了,谢谢啊,小小金币不成敬意

查看全部评分

 楼主| 发表于 2011-2-26 22:55:17 | 显示全部楼层
大家别光看,有好的方法也可以说说,这样才方便交流。
发表于 2011-3-1 11:30:06 | 显示全部楼层
楼主顶你,虽然我还看不太懂!但是你的把好方法分享出来的精神我是灰常支持的!
发表于 2011-3-1 21:05:24 | 显示全部楼层
謝謝fjw18 分享
 楼主| 发表于 2011-3-4 12:23:01 | 显示全部楼层
这个没什么难的,就是说屏幕的最左上角的坐标是x,y(0,0),而窗体的坐标是相对屏幕的坐标而言的,函数WinGetPos就是取得窗体的坐标及窗体的大小;窗体里的控件的坐标是相对窗体而言的,窗体的最左上角是坐标点(0,0),假如有个按钮在窗体的(0,0)处,您如果想模拟鼠标点击该键,把坐标设为(0,0)就成了点击屏幕的最左上角了,因为鼠标操作函数的坐标点都是相对屏幕而言的,因此需要将控件的相对坐标加上窗体的相对屏幕坐标得到控件相对屏幕的坐标,这样就不会点击失误了。
发表于 2011-3-4 15:59:45 | 显示全部楼层
支持楼主 定
发表于 2011-3-9 22:35:13 | 显示全部楼层
喜欢这样的楼主,无私共享,虽然看不懂。好好把你顶一下。。
发表于 2011-3-19 09:45:03 | 显示全部楼层
支持下
发表于 2011-5-8 18:26:00 | 显示全部楼层
楼主顶你!!!
发表于 2011-5-14 18:55:23 | 显示全部楼层
喜欢这样的楼主,无私共享,虽然看不懂。
发表于 2011-12-23 12:28:15 | 显示全部楼层
看不懂,楼主可以解释下代码吗???
发表于 2011-12-24 14:38:13 | 显示全部楼层
好像可以直接控件就可以了。。
 楼主| 发表于 2012-1-6 09:26:29 | 显示全部楼层
控件是点不到的
发表于 2012-7-28 01:02:29 | 显示全部楼层
不是很难~~
发表于 2012-8-2 01:16:50 | 显示全部楼层
回复 1# fjw18

请问代码里“"Static6"”代表什么?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 22:04 , Processed in 0.079230 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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