【问题标题】:Autohotkey - ControlClick inside windowAutohotkey - ControlClick 窗口内
【发布时间】:2015-06-16 15:37:35
【问题描述】:

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

#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

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    评论太多了,我来回答一下吧:

    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 是什么意思?这些是 optionsexcludeTitle 参数


    WinWaitClose
    

    你打算用你的脚本退出游戏吗?如果没有,这条线没有意义


    Exit
    

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


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

    什么按钮??

    【讨论】:

    • WinWaitClose 我想等到我停止游戏然后停止脚本。我想点击零时按钮。顺便说一句,我将重写我的脚本。
    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多