_MouseClick控制游戏
_MouseClick($hWnd, $x, $y, $button = 'left', $times = 1, $delay = 250)为啥这个功能,我在chrome网页上可以准确的点到相应的按钮,为啥用在端游,比如英雄联盟,魔兽世界,感觉鼠标就坐标错乱了,点击是有点击,但就是位置不对(变成点击在当前位置上)。
是游戏有做啥保护吗?
3q!~ $x $y位置重新调整一下看看呗 回复 2# 1361739590
怎么个重新调整?
无论你填什么值,他都会只点击你当前鼠标停留的位置,而不会点击x,y数值的位置。 那就是 $hWnd 这个弄错了应该 回复 3# liangxm
设置断点调试一下,看你是否正确获取句柄。如果你要做游戏,建议调用大漠的找图找色插件,这样你很轻松。 回复 4# 1361739590
$hWnd 这个肯定没错的,因为键盘输入啥的用的$hWnd是没有问题,而且鼠标并不是没点击,只是点击的位置不对,xy不起作用。 回复 5# love008
句柄不会找错的,其他键盘输入是可以没问题的
大漠的找图找色插件,这个在哪?论坛搜的? Opt("MouseCoordMode", 0) 回复 7# liangxm
找大漠最后一个免费版3.1233就可以。 回复 8# 1361739590
Opt("MouseCoordMode", 0)
相对激活窗口的,试过,不行。感觉也只是坐标,我用绝对位置鼠标都点不到要的位置。
操作ie浏览器啥的都可以,就是魔兽世界,英雄联盟啥的不行。 回复 9# love008
好的,3q,研究研究。 看一下这个_MouseClick() 里面是怎么写的。 看一下这个_MouseClick() 里面是怎么写的。
1361739590 发表于 2017-2-8 09:08 http://www.autoitx.com/images/common/back.gif
Func _MouseClick($hWnd, $x, $y, $button = 'left', $times = 1, $delay = 250)
Local $ix
Local $lParam = BitOR(BitAND($x, 0xFFFF), $y * 0x10000)
$button = StringLower($button)
If $button = "left" Then
For $ix = 1 To $times
_PostMessage($hWnd, 0x200, 0, $lParam);WM_MOUSEMOVE
_PostMessage($hWnd, 0x201, 1, $lParam);WM_LBUTTONDOWN
_PostMessage($hWnd, 0x202, 0, $lParam);WM_LBUTTONUP
If $ix < $times Then Sleep($delay)
Next
ElseIf $button = "right" Then
For $ix = 1 To $times
_PostMessage($hWnd, 0x200, 0, $lParam);WM_MOUSEMOVE
_PostMessage($hWnd, 0x204, 2, $lParam);WM_RBUTTONDOWN
_PostMessage($hWnd, 0x205, 0, $lParam);WM_RBUTTONUP
If $ix < $times Then Sleep($delay)
Next
EndIf
EndFunc ;==>_MouseClick
Func _PostMessage($hWnd, $iMsg, $iwParam, $ilParam)
DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hWnd, "uint", $iMsg, "wparam", $iwParam, "lparam", $ilParam)
EndFunc ;==>_WinAPI_PostMessage 为啥用在端游,比如英雄联盟,魔兽世界,感觉鼠标就坐标错乱了,点击是有点击,但就是位置不对(变成点击在当前位置上)
原因:如果是全屏的情况,很有可能是因为分辨率不同而出现坐标不同 先MouseMove一下?
页:
[1]
2