我的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屏幕标题栏运行第二部分,如果它没有看到它,循环回到开始。
我希望这是有道理的!
答案 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