单击鼠标循环重启不起作用

时间:2017-05-31 18:50:45

标签: loops timer autohotkey

我正在尝试在点击鼠标循环运行时的特定时刻重启PC。我使用了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

2 个答案:

答案 0 :(得分:0)

循环语句永不退出。

您正在使用计时器,因此我假设您希望您的代码是事件驱动的。如果是这种情况,请将MouseClick作为计时器的一部分而不是睡眠循环。

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

点击(787,512)每10秒一次,直到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

答案 1 :(得分:0)

点击(787,512)每10秒一次,直到20:18,此时它会关闭计算机

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
}