2017-05-31 51 views
0

我试图在点击鼠标循环运行时的特定时间重新启动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 

回答

0

循环语句从不退出。

你正在使用一个计时器,所以我假设你想让你的代码被事件驱动。如果是这种情况,请使MouseClick成为计时器的一部分,而不是休眠循环。

如果你不想使用事件,把你的关机条款环路

此点击(787512)每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 
+0

谢谢你的建议。问题是我是AHK的新手,我不确定我是否正确遵循。我的想法是运行无限循环,当时间达到特定值(即特定小时)时,应该通过重新启动过程来中断循环。你的意思是我应该改变这种情况:IfNotEqual,TimeToMeet,1709 {loop {...。}} else {...。}? – Trix

+0

我更新了您的代码建议更改的答案,并添加了另一个答案。 –

0

该喀嗒声(787512),每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 
} 
+0

非常感谢,吉姆。它像梦一样运作。 :-) – Trix