AutoHotkey:单个脚本中的多个重复操作

时间:2017-07-10 19:44:17

标签: autohotkey

我有2个重复动作,我想要不断等待。具体来说,有几个窗口,当它们出现时,我希望AutoHotkey执行操作。例如,我想移动并调整标题"Window 1"的窗口大小,并将y按键发送到"Window 2"。所以我有这个:

win1.ahk

While, 1
{
    WinWaitActive, Window 1
    WinMove, Window 1, , 100, 100, 800, 600
}

win2.ahk

While, 1
{
    WinWaitActive, Window 2
    send y
}

我的问题是,是否可以在同一个AutoHotkey脚本中放置多个此类操作。如果我想要等待30个不同的窗口,是否需要30个具有此格式的.ahk个脚本,或者是否可以在一个脚本中注册多个操作?

1 个答案:

答案 0 :(得分:0)

不,只有一个带有计时器和开关的脚本(如果您发送击键,则每个操作都有一个开关,这样他们就不会重复发送)。例如,取出notepadSentKey变量,看看打开新记事本时会发生什么。

#Persistent
SetTimer, DoStuff, 100
notepadSentKey := false
return

DoStuff:
{
    IfWinActive, % "Untitled - Notepad"
    {
        WinMove, A,, 0, 0, 500, 200
        if (!notepadSentKey) {
            Send, Hello there{!}
            notepadSentKey := true
        }
    }
    IfWinActive, % "Calculator"
    {
        WinGetPos, x, y, w, h
        WinMove, A,, % (A_ScreenWidth/2)-(w/2), % (A_ScreenHeight/2)-(h/2)
    }
    return
}