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

[AU3基础] [已解决]如何实现一个static类的操作(关于一个搜狗拼音自动配置脚本的实现)

  [复制链接]
发表于 2010-7-17 12:12:51 | 显示全部楼层 |阅读模式
本帖最后由 nickwu 于 2010-7-17 22:40 编辑

最近用autoit搞了个搜狗拼音的自动安装,autoit的强大让它实现起来易如反掌
不过好景不长,当我打算写一个搜狗拼音的自动配置程时,碰到了一个困难,如图

我想用autoit实现的是上图黑框中标签的切换
我用窗口信息工具看了一下,发现那是一个static类,并且所有按钮的枚举都是87
之后我尝试了很多办法来实现标签的切换,都不成功
如:WinActivate、ControlClick和ControlShow
请哪位高手帮忙看看,如何实现搜狗拼音配置界面里static控件的切换?

本帖子中包含更多资源

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

×
发表于 2010-7-17 15:53:48 | 显示全部楼层
ControlClick ( "标题", "文本", 控件ID [, 按钮 [, 点击次数 [, X坐标 [, Y坐标 ]]]] )
看看帮助文件
X坐标 [可选参数] 要点击控件的位置(X坐标). 默认为控件中心.
Y坐标 [可选参数] 要点击控件的位置(Y坐标). 默认为控件中心.
 楼主| 发表于 2010-7-17 16:33:10 | 显示全部楼层
ControlClick ( "标题", "文本", 控件ID [, 按钮 [, 点击次数 [, X坐标 [, Y坐标 ]]]] )
看看帮助文件
X坐 ...
lynfr8 发表于 2010-7-17 15:53


这个命令我试过,不过都没有成功,不知道是不是坐标没设对
有人尝试过编一个跟此类似的脚本的吗?借代码看看
或者还有人有更好的办法的吗?
发表于 2010-7-17 16:46:51 | 显示全部楼层
实在不行就找图点击
 楼主| 发表于 2010-7-17 17:45:09 | 显示全部楼层
实在不行就找图点击
lynfr8 发表于 2010-7-17 16:46


什么是“找图点击”
发表于 2010-7-17 17:52:31 | 显示全部楼层
本帖最后由 lynfr8 于 2010-7-17 17:53 编辑

回复 5# nickwu

通俗一点讲就是:
你可以理解为你目前所看到屏幕是一张图
找图呢就是在这张图找到和设定的图片(比如你提问的-题库-你把这两个字截图下来)的屏幕坐标
既然找到坐标
无需识别控件(例如你提问的static类)就能点击所获取的坐标
这样就可以解决一些难识别或者难直接点击的控件的自动安装了
此乃自动安装最后的必杀技了!
一旦掌握什么自动安装都不在话下!
楼主自行研究吧。

所需UDF和DLL到此下载:(里面有经典的例子作为参考学习)
    http://www.autoitx.com/thread-13677-1-1.html

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2010-7-17 17:56:56 | 显示全部楼层
这个命令我试过,不过都没有成功,不知道是不是坐标没设对
有人尝试过编一个跟此类似的脚本的吗?借代 ...
nickwu 发表于 2010-7-17 16:33


你检查一下自己的标题和控件名称(包括枚举)
还有坐标是否正确(分屏幕坐标和相对坐标)
正确的话应该是没问题的
 楼主| 发表于 2010-7-17 18:08:55 | 显示全部楼层
拜谢楼上朋友的解答,我还会继续研究,成功之后将代码奉上,并做结贴处理
 楼主| 发表于 2010-7-17 22:33:34 | 显示全部楼层
本帖最后由 nickwu 于 2010-7-17 22:35 编辑

代码我摸索了好久终于成功了,感谢"lynfr8"大牛的提示:找图点击,呵呵
附上源码,供其他网友参考,再次谢谢这里的热心网友,谢谢你的解答
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

评分

参与人数 1金钱 +18 贡献 +3 收起 理由
lynfr8 + 18 + 3

查看全部评分

发表于 2013-2-14 22:48:47 | 显示全部楼层
貌似修改注册表或配置文件来的方便!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 21:03 , Processed in 0.079624 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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