Autohotkey 自动热键-控件在窗口内单击

Autohotkey 自动热键-控件在窗口内单击,autohotkey,Autohotkey,我有以下ahk脚本来运行C&C将军: #SingleInstance ignore CoordMode, Mouse, Relative Run C:\Users\william\Desktop\Generals.lnk a::Left s::Down d::Right w::Up Loop{ sleep, 500 } Until WinExist("ahk_exe Generals.exe") sleep, 200 SetControlDelay -1 ControlClick, 1,

我有以下ahk脚本来运行C&C将军:

#SingleInstance ignore
CoordMode, Mouse, Relative

Run C:\Users\william\Desktop\Generals.lnk

a::Left
s::Down
d::Right
w::Up

Loop{
sleep, 500
}
Until WinExist("ahk_exe Generals.exe")

sleep, 200
SetControlDelay -1
ControlClick, 1, ahk_class #32770, "", LEFT, 10, 300, 300

Loop{
sleep, 500
}

Until WinExist("ahk_exe Generals.exe")
WinWaitClose
Exit
问题是我无法控制点击第二个按钮

我读过手册,但我不明白为什么这不起作用。我甚至不知道它是否发出咔哒声

让它工作起来:

#SingleInstance ignore
CoordMode, Mouse, Relative

Run C:\Users\william\Desktop\Generals.lnk

winWait, ahk_exe Generals.exe

Click 300, 300

winWait, ahk_exe Generals.exe
WinWaitClose
Exit

a::Left
s::Down
d::Right
w::Up

太多评论了,我将给出一个答案:

a::Left
s::Down
d::Right
w::Up

Loop{
...
键重新映射(
s::Down
)隐式地带来一个
返回值。与热键(如
s::msgbox)一样,hi
只是

s::
    msgbox, hi
return
,键重新映射只是多行的一种简短形式。因此,脚本在执行
Run
命令后已经终止。在程序启动时,将所有热键、标签、函数、热字符串和键重新映射放置在您希望发生的所有事情之后。如果双击任务栏图标,可以看到脚本行为。有关详细信息,请参阅


自动热键中实际上有一个特殊的命令:

winWait, ahk_exe Generals.exe

如果要单击不在前景中的窗口,则controlClick非常有用。根据你的图像,C&C在你的前景中非常重要。所以我想你可以简单地使用这个命令

另外(参见说明)
1
作为控件或pos没有任何意义。。你所说的
300300
是什么意思?这些是选项和excludeTitle参数


你打算用你的脚本退出游戏吗?如果不是,这句话就没有意义了


如果希望保持脚本运行(用于使用密钥重新映射),退出是可以的,但是
return
更合适。如果要退出整个脚本,请改用
exitapp


问题是我无法控制点击第二个按钮


什么按钮???

使用
WinWaitClose
我想等到我停止游戏,然后再停止脚本。我想点击零点按钮。顺便说一句,我要重写我的剧本。
winWait, ahk_exe Generals.exe
ControlClick, 1, ahk_class #32770, "", LEFT, 10, 300, 300
WinWaitClose
Exit