Autohotkey - ControlClick内部窗口

时间:2015-06-16 05:44:22

标签: 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_class #32770, "", LEFT, 10, 300, 300

Loop{
sleep, 500
}

Until WinExist("ahk_exe Generals.exe")
WinWaitClose
Exit

问题是我无法让ControlClick单击第二个按钮。

enter image description here

我已经阅读了手册,但我无法弄清楚为什么这不起作用。我甚至都不知道它是否会发出咔嗒声。

搞定了:

#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

1 个答案:

答案 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点击第二个按钮。

什么按钮??