WinWaitActive 函数未按预期运行

WinWaitActive function isn't behaving as expected

我不确定我在这里做错了什么,但我有一个应用程序,其中按 ALT+ENTER 将切换到全屏。我只是希望每次我 tab 回到这个 window 时都能发生这种情况。

使用下面的代码,什么也不会发生。

#SingleInstance force
Loop
{
WinWaitActive, MyProgram
{
Send, ^{Enter}
WinWaitNotActive, MyProgram
}
}

非常感谢任何指导。
谢谢。

试试这个代码:

版本 1

StateVar := 0
Loop
{
    IfWinActive, MyProgram
    {
        if (StateVar = 0)
        {
            Send, !{Enter}
            StateVar := 1
        }
    }
    else
    {
        StateVar := 0
    }
}




版本 2
在版本 2 中仅使用 WinTitle 的一部分(在您的情况下 MyProgram)。例如 Notepad 而不是 Untitled - Notepad。如果您的 window 的 Wintitle 发生变化,这可能会有所帮助。

SetTitleMatchMode, 2
StateVar := 0
Loop
{
    IfWinActive, MyProgram
    {
        if (StateVar = 0)
        {
            Send, !{Enter}
            StateVar := 1
        }
    }
    else
    {
        StateVar := 0
    }
}




版本 3

SetTitleMatchMode, 2
    StateVar := 0
    Loop
    {
        IfWinActive, MyProgram
        {
            if (StateVar = 0)
            {
                ControlSend,, !{Enter}, MyProgram
                StateVar := 1
            }
        }
        else
        {
            StateVar := 0
        }
    }

^Ctrl修饰符,要用!{Enter}.

试试这个:

#SingleInstance, Force
Loop {
    WinWaitActive, MyProgram
    Send, !{Enter}
    WinWaitNotActive, MyProgram
}