Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在单击鼠标循环中重新启动不起作用_Loops_Timer_Autohotkey - Fatal编程技术网

Loops 在单击鼠标循环中重新启动不起作用

Loops 在单击鼠标循环中重新启动不起作用,loops,timer,autohotkey,Loops,Timer,Autohotkey,当鼠标点击循环运行时,我试图在特定时间重新启动电脑。我使用了if+else条件,当我尝试分别运行这两段代码时,脚本可以工作,但当将它们放在一起时,只有鼠标单击循环在运行,而计时器进程不起作用。你知道怎么了吗 ^+f:: SetTimer, Chronos, 500 return Chronos: FormatTime, TimeToMeet,,HHmm If (TimeToMeet = 2018) { Run, %comspec% /c shutdown -r

当鼠标点击循环运行时,我试图在特定时间重新启动电脑。我使用了if+else条件,当我尝试分别运行这两段代码时,脚本可以工作,但当将它们放在一起时,只有鼠标单击循环在运行,而计时器进程不起作用。你知道怎么了吗

^+f::
  SetTimer, Chronos, 500
  return


Chronos:

  FormatTime, TimeToMeet,,HHmm
  If (TimeToMeet = 2018) 
  {
    Run, %comspec% /c shutdown -r -f -t 0
  } 
  else
  {
    loop
    {
      MouseClick, Left, 787, 512, 1,0
      Sleep 10000
    }
  }

  Return

k::Pause

循环语句从不存在

您使用的是计时器,所以我假设您希望代码是事件驱动的。如果是这种情况,将鼠标单击作为计时器的一部分,而不是睡眠循环

如果不想使用事件,请将shutdown子句放入循环中

每10秒点击一次(787512),直到20:18,然后关闭计算机

^+f::
  SetTimer, Chronos, 500
  return


Chronos:

  loop
  {
      FormatTime, TimeToMeet,,HHmm
      If (TimeToMeet = 2018) 
      {
         Run, %comspec% /c shutdown -r -f -t 0
      }
      MouseClick, Left, 787, 512, 1,0
      Sleep 10000
  }

k::Pause
F2:: start()
F3:: stop()

start()
{
  global running := 1
  while running {
    FormatTime TimeToMeet,,HHmm
    if (TimeToMeet = 1349 )
      Shutdown 13
    click 787,512
    sleep 10000
  }
}

stop()
{
  global running := 0
}
每10秒点击一次(787512),直到20:18,然后关闭计算机

^+f::
  SetTimer, Chronos, 500
  return


Chronos:

  loop
  {
      FormatTime, TimeToMeet,,HHmm
      If (TimeToMeet = 2018) 
      {
         Run, %comspec% /c shutdown -r -f -t 0
      }
      MouseClick, Left, 787, 512, 1,0
      Sleep 10000
  }

k::Pause
F2:: start()
F3:: stop()

start()
{
  global running := 1
  while running {
    FormatTime TimeToMeet,,HHmm
    if (TimeToMeet = 1349 )
      Shutdown 13
    click 787,512
    sleep 10000
  }
}

stop()
{
  global running := 0
}

谢谢你的建议。问题是我是AHK的新手,我不确定我是否正确地遵循了。我的想法是运行无限点击循环,当时间达到特定值(即特定小时)时,应通过重新启动过程来打破该循环。你的意思是我应该将条件反转为IfNotEqual,TimeToMeet,1709{loop{…}}else{…}?我用对代码的建议更改更新了答案,并添加了另一个答案。