houxiren 发表于 2009-2-15 22:56:52

【重新求助】鼠标如何自动点击选项卡?

谢谢KiwiCsj 和ahkang;更谢谢131738前辈,帮我完美地解决了鼠标如何自动点击选项卡的问题(亲自帮我编脚本,真的不胜感谢)!

编这个是为了安装mplayer这个绿色版的播放器。我把它用7-ZIP打包成exe文件,运行Run('mplayer.exe -o"C:\Program Files\" -y')之后,就出来了如下图解压。我想等解压完了再进行下面的脚本,就是在解压时暂停,用了这句WinWaitClose("", "Cancel", 12),但总觉得不妥,不过这已是我能想出的最好脚本了,请问还有其它更好的吗?

根据131738前辈的脚本,我自己编好了我需要的脚本,脚本能顺利的运行。但把脚本编译成exe文件后,解压完之后,就一直暂停了。请问是不是漏编了什么呢?谢谢!

实在抱歉,论坛提示说24小时内,不准我再传附件了,只能先贴个站外的下载地址http://www.greendown.cn/soft/2408.html

[ 本帖最后由 houxiren 于 2009-2-26 23:27 编辑 ]

131738 发表于 2009-2-16 23:09:32

你这么搞法估计没人愿帮你!

houxiren 发表于 2009-2-17 11:15:32

谢谢二楼,请问要怎么求助呢?

131738 发表于 2009-2-17 22:12:06

截图会吧!

jkl897a 发表于 2009-2-17 22:45:15

多弄几行MouseClick ( "按钮" [, X坐标, Y坐标 [, 点击次数 [, 速度 ]]] ) 也不行 ?
我也是新手 呵呵

KiwiCsj 发表于 2009-2-17 23:03:53

请使用最新版本au3环境,然后查看帮助中的 _GUICtrlTab_ClickTab函数。

KiwiCsj 发表于 2009-2-17 23:11:26

再想想,你可能是要点击第三方程序的窗口,所以可能上一个函数不可行。

不过道理是相通的,方法都是查询对方窗口的坐标,然后再确定你要的选项卡所在相对坐标,最后移动光标到那个像素上去点击左键。

你试试这个思路。
可能用到的:
1,WinGetPos ;获取对方窗体当时的坐标和大小信息,
2,用au3窗口信息工具确定你所要的选项卡相对其自身窗口左上边缘的相对坐标,
3,计算该选项卡绝对坐标并移动光标去点击。

houxiren 发表于 2009-2-18 16:12:45

谢谢,各位,我马上去试试。试完再回来禀报。

131738 发表于 2009-2-18 16:34:40

原帖由 KiwiCsj 于 2009-2-17 23:03 发表 http://www.autoitx.com/images/common/back.gif
请使用最新版本au3环境,然后查看帮助中的 _GUICtrlTab_ClickTab函数。


这个应该是可行的,只是有点复杂!!
想法获取那程序窗口的句柄。。。。。

[ 本帖最后由 131738 于 2009-2-18 16:36 编辑 ]

houxiren 发表于 2009-2-18 21:48:04

先谢谢171738和KiwiCsj 两位。

我就是照着这个做,可刚学AUTO,怎么也弄不出来。不是我懒,是急着用,请各位前辈帮个忙,把我编编这个难搞的东西!谢谢。最好加上注释,不然可能还得烦人家,实在感谢!!

[ 本帖最后由 houxiren 于 2009-2-18 22:03 编辑 ]

131738 发表于 2009-2-19 16:31:27

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiTab.au3>
Global $title,$A
$title="MPlayer 首选项"
Run('meditor2.exe')
WinWait($title,"")
If Not WinActivate($title,"确定") Then WinActivate($title,"确定")
WinWaitActive($title,"确定")
$A=ControlGetHandle ( $title, "确定", 1000)
        ; Click Tab
        _GUICtrlTab_ClickTab($A, 9, "left", True, 100)


试试吧!!!!!!!!!!!!

[ 本帖最后由 131738 于 2009-2-19 16:32 编辑 ]

houxiren 发表于 2009-2-19 18:18:14

天啊,完全可行。实在太感谢了,无以言表。131738大哥,能把每行代码的作用都注上吗?谢谢。

[ 本帖最后由 houxiren 于 2009-2-19 18:27 编辑 ]

131738 发表于 2009-2-19 21:07:10

在10楼是:请各位 前辈 帮个忙
问题解决了,辈分成大哥了!!!!!!!!!!!!
老夫已是花甲之人!!
你对照帮助一条一条语句看吧!!!

[ 本帖最后由 131738 于 2009-2-19 22:35 编辑 ]

houxiren 发表于 2009-2-20 00:01:43

叫前辈是自己初学AUTO,叫大哥是心里感激,最后再说一声谢谢!!

ahkang 发表于 2009-2-20 17:28:18

新手, 望高手多多指教

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include ;包含 GuiConstantsEx.au3 文件
#include ;包含 GuiTab.au3 文件
Global $title,$A ;先声明一个变量:$Title 是标题, $A 就是下面的 $A = ControlGetHandle (获得句柄)变量
$title="MPlayer 首选项" ;$Title =标题
Run('meditor2.exe') ;运行 Meditor2.exe
WinWait($title,"") ;暂停脚本, 等待含有"MPlayer 首选项"的窗口出现
If Not WinActivate($title,"确定") Then WinActivate($title,"确定") ;如果标题为 "MPlayer 首选项" 文本为 "确定" 的窗口未激活, 则激活之
WinWaitActive($title,"确定") ;等待并激活"MPlayer 首选项,"确定"窗口
$A=ControlGetHandle ( $title, "确定", 1000) ;给上述声明变量 $A 赋值 (获取窗口句柄, 特别感谢 171738 老师给予指正: 1000为目标控件ID! 先前误以为是时间单位了~~~)
; Click Tab ;注释, 点击标签(选项卡)
_GUICtrlTab_ClickTab($A, 9, "left", True, 100) ;调用函数 _GUICtrlTab_ClickTab(窗口句柄/默认标签为"0",依次数,看目标标签是第几个?/"鼠标左键"/逻辑为:真/鼠标移动速度:100 再次感谢 171738 老师!)

[ 本帖最后由 ahkang 于 2009-3-23 22:43 编辑 ]
页: [1] 2 3 4
查看完整版本: 【重新求助】鼠标如何自动点击选项卡?