2017-05-31 78 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