Autohotkey 中文论坛

完整版: 怎么实现不停的按"鼠标中键"的效果【麻烦各位高手帮帮忙,谢谢了】
你目前正在浏览的是简化版. 请点击这里浏览完整版
[i=s] 本帖最后由 sniper2000 于 2009-10-12 05:09 编辑 [/i]

查了下资料,鼠标中键是AHK代码是MButton,但是我写到脚本里的时候却无法实现连续按鼠标中键的效果。如下面这段代码

WinGet, wowid, List, 魔兽世界
~!1::
IfWinActive, 魔兽世界
x=0
Loop
{
if x=0
{
ControlSend,,{MButton},ahk_id %wowid1%
sleep 800
}
else
break
}
return
~!2::x=1

代码的用意是按下alt+1则"不停的按鼠标中键",按下alt+2,则停止"不停的按鼠标中键"。

但是实际运行情况却无法触发鼠标中键。
在这里请教下各位高手,该怎么实现这个功能?
谢谢了~!
WinGet, wowid, List, 魔兽世界
~!1::
SetTimer, Label0, 800
Return
~!2::
SetTimer, Label0, Off
Return

Label0:
IfWinActive, 魔兽世界
ControlSend,,{MButton},ahk_id %wowid1%
Return
非常感谢 ranger52 的答复。

不过代码效果跟我的一样,无法触发鼠标中键

还请各位达人帮帮忙了。
[i=s] 本帖最后由 ranger52 于 2009-10-14 10:04 编辑 [/i]

首先检查
代码:
WinGet, wowid, List, 魔兽世界
看看 程序名称 是不是魔兽世界,有没有其他程序把 名称改变了,如果没有试试这个
代码:
WinGet, wowid, List, 魔兽世界
~!1::  
    SetTimer, Label0, 800
Return
~!2::
    SetTimer, Label0, Off
Return

Label0:
IfWinActive, 魔兽世界
     ControlSend,,{MButton},ahk_id%wowid1%
Return
再不行 试试这个
代码:
#IfWinActive, 魔兽世界
~!1::  
    SetTimer, Label0, 800
Return
~!2::
    SetTimer, Label0, Off
Return

Label0:
     Send {MButton}
Return
我确认我的窗口名称是魔兽世界,后面一段代码可以成功实现鼠标中键连发,太感谢 ranger52 了。
还想请问下,有办法实现锁定 魔兽世界1号窗口的功能么,这样多开的时候比较方便。
就是这段代码的功能 ControlSend,,{MButton},ahk_id%wowid1%
尝试了下,Send {MButton} 很关键,但是在里这样写,ControlSend,,Send {MButton},ahk_id%wowid1% ,会触发send这4个字母键,这种格式该怎么写呢?
魔兽世界里 你用中键干什么呀……
抓贼呗
参考网址