IF命令autohotkey循环

时间:2014-08-04 18:23:09

标签: loops autohotkey

我的AHK循环命令出了问题,希望有人可以帮助我。我有一种情况,我必须每天连接到客户站点并通过一些关键笔划进行身份验证(单击提交,输入等)。如果我那天第一次联系客户,我必须验证原因。那天与任何其他服务器对该客户的任何连接我都不需要输入原因。如果我输入了当天的原因,这个循环很有效:

#+r::
Loop
{
WinWait, Search - Google Chrome
IfWinNotActive, Search - Google Chrome, WinActivate1817, Search - Google Chrome
WinWaitActive, Search - Google Chrome
Sleep, 100
Send, {ENTER}
WinWait, Search Hosts - Google Chrome
IfWinNotActive, Search Hosts - Google Chrome, WinActivate, Search Hosts - Google Chrome
WinWaitActive, Search Hosts
Send, +{TAB}+{TAB}{ENTER}
}
return

这是我的问题,我还需要这个循环来运行:

#+s::
Loop
{
WinWait, CRM Information
IfWinNotActive, CRM Information, WinActivate, CRM Information
WinWaitActive, CRM Information
Send, +{TAB}+{TAB}+{TAB}HPF{ENTER}
}
return

我知道我一次只能运行一个循环。基本上我想要发生的是拥有某种If / else语句。我总是需要运行第一个脚本,但如果是我第一次连接到当天的客户,则只需要运行第二个脚本。所以我需要将二号合二为一。我总是需要第一个运行,如果它看到CRM信息chrome屏幕标题栏运行第二部分,如果它没有看到它,循环回到开始。

我希望这是有道理的!

1 个答案:

答案 0 :(得分:0)

始终使用http://ahkscript.org/的AutoHotkey(当前版本,新官方网站)!来自autohotkey.com的AutoHotkey已经过时,您可能在运行脚本时遇到一些问题!

如果我理解正确,您需要在按热键时随时运行第一个脚本,但只有在第一次按热键时才运行第二个脚本。我制作了一个脚本,在你运行之后,它会在你第一次按热键后执行第一个和第二个脚本。所有后续热键按下将仅执行第一个脚本。这是脚本:

runcounter:=0

#+r::
Loop
{
    WinWait, Search - Google Chrome
    IfWinNotActive, Search - Google Chrome, WinActivate1817, Search - Google Chrome
    WinWaitActive, Search - Google Chrome
    Sleep, 100
    Send, {ENTER}
    WinWait, Search Hosts - Google Chrome
    IfWinNotActive, Search Hosts - Google Chrome, WinActivate, Search Hosts - Google Chrome
    WinWaitActive, Search Hosts
    Send, +{TAB}+{TAB}{ENTER}

    runcounter:= runcounter + 1

    if (runcounter = 1)
    {
        Loop
        {
            WinWait, CRM Information
            IfWinNotActive, CRM Information, WinActivate, CRM Information
            WinWaitActive, CRM Information
            Send, +{TAB}+{TAB}+{TAB}HPF{ENTER}
        }
    }

}
return



修改 从评论中我了解到你有3个脚本。第一个是Search - Google Chrome,第二个是Search Hosts - Google Chrome,第三个是CRM Information。现在,您需要在脚本第一次运行时运行所有三个脚本(1,2,3)。所有后续运行应该只运行第一个脚本。那是你想要的脚本吗?这是代码:

runcounter:=0

#+r::
Loop
{
    WinWait, Search - Google Chrome
    IfWinNotActive, Search - Google Chrome, WinActivate1817, Search - Google Chrome
    WinWaitActive, Search - Google Chrome
    Sleep, 100
    Send, {ENTER}

    runcounter:= runcounter + 1

    if (runcounter = 1)
    {
        Loop
        {

            WinWait, Search Hosts - Google Chrome
            IfWinNotActive, Search Hosts - Google Chrome, WinActivate, Search Hosts - Google Chrome
            WinWaitActive, Search Hosts
            Send, +{TAB}+{TAB}{ENTER}

            WinWait, CRM Information
            IfWinNotActive, CRM Information, WinActivate, CRM Information
            WinWaitActive, CRM Information
            Send, +{TAB}+{TAB}+{TAB}HPF{ENTER}
        }
    }

}
return