找回密码
 加入
搜索
查看: 2158|回复: 2

[系统综合] _GUICtrlTab_ClickTab的一点小改动

[复制链接]
发表于 2016-1-9 21:30:58 | 显示全部楼层 |阅读模式
本帖最后由 fisher 于 2016-1-9 22:16 编辑

做了一个小外挂,其中有点击选项卡标签(Tab).
原来都没有问题,都能点中。最近发现点不中了,仔细观察发现,鼠标移到左上角,就差那么一点。


找到<GuiTab.au3>,

Func _GUICtrlTab_ClickTab($hWnd, $iIndex, $sButton = "left", $bMove = False, $iClicks = 1, $iSpeed = 1)
        If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)

        Local $iX, $iY
        If Not $bMove Then
                ; Don't move mouse, use ControlClick()
                Local $hWinParent = _WinAPI_GetParent($hWnd)
                Local $avTabPos = _GUICtrlTab_GetItemRect($hWnd, $iIndex)
                ;$iX = $avTabPos[0] + (($avTabPos[2] - $avTabPos[0]) / 2)
                ;$iY = $avTabPos[1] + (($avTabPos[3] - $avTabPos[1]) / 2)
               
                $iX = $avTabPos[0] + (($avTabPos[2] - $avTabPos[0]) / 2)+10
                $iY = $avTabPos[1] + (($avTabPos[3] - $avTabPos[1]) / 2)+10
                ControlClick($hWinParent, "", $hWnd, $sButton, $iClicks, $iX, $iY)
        Else
                ; Original code to move mouse and click (requires active window)
                Local $tRect = _GUICtrlTab_GetItemRectEx($hWnd, $iIndex)
                Local $tPoint = _WinAPI_PointFromRect($tRect, True)
                $tPoint = _WinAPI_ClientToScreen($hWnd, $tPoint)
                _WinAPI_GetXYFromPoint($tPoint, $iX, $iY)
                Local $iMode = Opt("MouseCoordMode", 1)
                MouseClick($sButton, $iX+10, $iY+10, $iClicks, $iSpeed)
                Opt("MouseCoordMode", $iMode)
        EndIf
EndFunc   ;==>_GUICtrlTab_ClickTab

把原始函数修改了一下(粗体红字部分),把鼠标多移动了一点,问题解决。

本帖子中包含更多资源

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

×
发表于 2016-1-14 21:08:24 | 显示全部楼层
谢谢分享,新手学习
发表于 2016-1-25 13:47:09 | 显示全部楼层
如果有意外弹窗的估计会停止
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 02:57 , Processed in 0.075077 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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