我有以下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
问题是我无法让ControlClick单击第二个按钮。
我已经阅读了手册,但我无法弄清楚为什么这不起作用。我甚至都不知道它是否会发出咔嗒声。
搞定了:
#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
答案 0 :(得分:3)
评论过多,我会把它作为答案:
a::Left
s::Down
d::Right
w::Up
Loop{
...
键重映射(s::Down
)隐含地带有return
。与s::msgbox, hi
之类的热键相同的方式只是
s::
msgbox, hi
return
,键重映射只是多行的简短形式。因此,您的脚本已在Run
命令之后终止。将所有热键,标签,功能,热字符串和键重映射添加到您希望在程序启动时发生的所有内容。如果双击任务栏图标,则可以看到脚本行为。有关详细信息,请参阅the auto-execute section。
loop
sleep, 500
Until WinExist("ahk_exe Generals.exe")
在AutoHotkey中实际上有一个特殊的命令:
winWait, ahk_exe Generals.exe
ControlClick, 1, ahk_class #32770, "", LEFT, 10, 300, 300
如果要单击一个不在前台的窗口,controlClick非常有用。根据你的形象,C& C几乎是你的前景。所以我想你可以简单地使用click命令。
另外(参见controlClick解释)1
因为control-or-pos没有任何意义..你的意思是300, 300
?这些是选项和 excludeTitle 参数
WinWaitClose
你打算用你的剧本退出游戏吗?如果没有,这条线毫无意义
Exit
如果你想保持你的脚本运行(使用密钥重映射),退出是可以的,但return
更合适。如果要退出整个脚本,请使用exitapp
代替
问题是我无法让ControlClick点击第二个按钮。
什么按钮??