|
本帖最后由 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
把原始函数修改了一下(粗体红字部分),把鼠标多移动了一点,问题解决。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|