AU3是否可以鼠标同时点击几个坐标?
本帖最后由 魔导 于 2011-12-1 11:12 编辑想要用模拟操作同时操作几个游戏
需要鼠标在同一时间点击多个点。。。。。
请各位大牛,前辈们帮帮忙指点指点{:1_498:}
MouseClick("right",461+$Bx,234+$By,10,0);这是第一个坐标
MouseClick("right",461+$Ax,234+$Ay,10,0);这是第二个坐标
;是否可以两个一起进行?
可以啊模拟多线程多线程要是觉得麻烦 就用多进程 一个进程点一个坐标 好像多线程是au3的硬伤,只能多进程 _WinAPI_CreateSemaphore做并发 _WinAPI_CreateSemaphore做并发
这个我用过的,可以实现楼主的要求 这个也能实现,强。 感谢各位前辈{:1_498:} 回复 4# netegg
前辈可以给个列子吗??
去看了下都是些英文的没看懂
这两个一起的话该怎么做呢?
MouseClick("left",448+$A,250+$C,12);这是代码A
MouseClickDrag("left",483+$A,282+$C,503+$A,282+$C)
MouseClick("left",358+$A,585+$C,20)
MouseClick("left",850+$A,588+$C,20)
MouseClick("left",770+$A,355+$C,4)
wuseA()
MouseMove(1439,0)
Send("5")
MouseMove(4,17,5)
Send("{ENTER}")
MouseMove(1439,0,5)
Send("{ENTER}")
MouseClick("left",850+$A,588+$C,500)
MouseClick("left",911+$A,588+$C,19)
MouseClick("left",862+$A,604+$C,5,0)
Send("{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}")
MouseClick("left",448+$A,250+$B,12);这是代码B
MouseClickDrag("left",483+$A,282+$B,503+$A,282+$B)
MouseClick("left",358+$A,585+$B,20)
MouseClick("left",850+$A,588+$B,20)
MouseClick("left",770+$A,355+$B,4)
wuseB()
MouseMove(1439,0)
Send("5")
MouseMove(4,17,5)
Send("{ENTER}")
MouseMove(1439,0,5)
Send("{ENTER}")
MouseClick("left",850+$A,588+$B,500)
MouseClick("left",911+$A,588+$B,19)
MouseClick("left",862+$A,604+$B,5,0)
Send("{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}") 回复 6# 淡定开源
如8楼的 ,可以给个列子吗?
谢谢前辈{:1_498:} 回复 2# jj119120
这个试过一次,当时的状况是以个鼠标点完一个又点一个。就好像在点击是用热键一样的。{:1_498:} _WinAPI_CreateSemaphore 做兵法,我去研究一下... 回复 11# bdancerlc
万分感谢{:1_498:} 回复 2# jj119120
具体的怎么做啊?
要同时可以点击两个以上的坐标{:1_498:} 回复 13# 魔导
函数参考
_WinAPI_CreateSemaphore
--------------------------------------------------------------------------------
创建或打开有名或无名的信号量对象.
译注: 关于 信号量 ,维基百科的注释页:
#Include <WinAPIEx.au3>
_WinAPI_CreateSemaphore ( $sSemaphore, $iInitial, $iMaximum [, $tSecurity] )
参数
$sSemaphore 信号量的名称. 名称比较区分大小写.
$iInitial 信号量对象的初始计数.
该值必须大于或等于 0, 且小于或等于 $iMaximum
$iMaximum 信号量对象的最大数量. 该值必须大于 0.
$tSecurity [可选参数] $tagSECURITY_ATTRIBUTES structure that specifies a security descriptor for the new semaphore.
If this parameter is 0, the semaphore gets a default security descriptor.
返回值
成功: 返回信号量对象的句柄.如命名信号量对象在函数调用前已存在,
函数返回现有对象的句柄.
失败: 返回 0,设置@error:标志为非 0 值.
注意/说明
任何进程可以调用 _WinAPI_WaitFor... 函数指定信号量对象句柄.
单一对象等待函数返回指定对象的状态信号.
当任一对象或指定对象都是信号时, 多对象等待函数可以返回任何命令.
当一个等待函数返回时,被释放的等待进程继续执行.
信号量对象的状态是信号时, 其信号计数大于 0, 如果不是, 其计数等于 0.
$iInitial 参数指定初始值.每个等待进程因信号量的信号状态的释放使计数减 1.
使用 _WinAPI_ReleaseSemaphore() 函数指定信号量的递增计数.
计数不能小于 0 或大于 $iMaximum 参数指定的值.
相关
详情参考
在MSDN中搜索
示例/演示
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
If Not @Compiled Then
MsgBox(0, '', 'To run this script, you must first compile it and then run the (.exe) file.')
Exit
EndIf
Global $hSemaphore = _WinAPI_CreateSemaphore('MySemaphore', 2, 2)
_WinAPI_WaitForSingleObject($hSemaphore)
_MyGUI()
_WinAPI_ReleaseSemaphore($hSemaphore)
_WinAPI_CloseHandle($hSemaphore)
Func _MyGUI()
Local $Msg
GUICreate('MyGUI')
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case -3
ExitLoop
EndSwitch
WEnd
EndFunc ;==>_MyGUI 好复杂,晕了。
打比方你两个游戏吧,M游戏,N游戏。
M游戏上A点 500下,生成一个执行脚本
N游戏上B点 500下 ,生成另一个执行AU3
..........
页:
[1]
2