liangxm 发表于 2017-1-30 20:06:59

_MouseClick控制游戏

_MouseClick($hWnd, $x, $y, $button = 'left', $times = 1, $delay = 250)

为啥这个功能,我在chrome网页上可以准确的点到相应的按钮,为啥用在端游,比如英雄联盟,魔兽世界,感觉鼠标就坐标错乱了,点击是有点击,但就是位置不对(变成点击在当前位置上)。

是游戏有做啥保护吗?

3q!~

1361739590 发表于 2017-2-2 09:17:23

$x    $y位置重新调整一下看看呗

liangxm 发表于 2017-2-6 09:34:47

回复 2# 1361739590


    怎么个重新调整?
无论你填什么值,他都会只点击你当前鼠标停留的位置,而不会点击x,y数值的位置。

1361739590 发表于 2017-2-6 10:57:58

那就是 $hWnd 这个弄错了应该

love008 发表于 2017-2-6 11:55:16

回复 3# liangxm


   设置断点调试一下,看你是否正确获取句柄。如果你要做游戏,建议调用大漠的找图找色插件,这样你很轻松。

liangxm 发表于 2017-2-6 14:05:07

回复 4# 1361739590


    $hWnd 这个肯定没错的,因为键盘输入啥的用的$hWnd是没有问题,而且鼠标并不是没点击,只是点击的位置不对,xy不起作用。

liangxm 发表于 2017-2-6 14:06:22

回复 5# love008

句柄不会找错的,其他键盘输入是可以没问题的

大漠的找图找色插件,这个在哪?论坛搜的?

1361739590 发表于 2017-2-6 15:28:14

Opt("MouseCoordMode", 0)

love008 发表于 2017-2-6 15:33:00

回复 7# liangxm


找大漠最后一个免费版3.1233就可以。

liangxm 发表于 2017-2-7 17:33:32

回复 8# 1361739590



Opt("MouseCoordMode", 0)
相对激活窗口的,试过,不行。感觉也只是坐标,我用绝对位置鼠标都点不到要的位置。

操作ie浏览器啥的都可以,就是魔兽世界,英雄联盟啥的不行。

liangxm 发表于 2017-2-7 17:33:49

回复 9# love008


    好的,3q,研究研究。

1361739590 发表于 2017-2-8 09:08:36

看一下这个_MouseClick() 里面是怎么写的。

liangxm 发表于 2017-2-9 11:26:06

看一下这个_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

chamlien 发表于 2017-2-10 18:01:57

为啥用在端游,比如英雄联盟,魔兽世界,感觉鼠标就坐标错乱了,点击是有点击,但就是位置不对(变成点击在当前位置上)

原因:如果是全屏的情况,很有可能是因为分辨率不同而出现坐标不同

Wh1t3 发表于 2017-2-19 07:20:17

先MouseMove一下?
页: [1] 2
查看完整版本: _MouseClick控制游戏