指定時間後にシャットダウン/スリープするAHKスクリプト
指定時間後にシャットダウン/スリープするAHKスクリプト
Win+Escでシャットダウン、Win+Shift+Escでスリープ。ホットキーで出現する入力ダイアログに分単位で数字を入力してOKすると、各タイマー実行。
入力数値が正の数でなかったりキャンセル、ダイアログを閉じるなどした場合は何もしない。ダイアログの表示時間は1分間。
指定時間経過後、スリープはそのままスリープに入るが、シャットダウンの場合は更に確認ダイアログが出現し、10秒間だけキャンセルの猶予ができる。
もっと細かい指定のできるタイマーソフトを使った方がいいかもしれないけど、これはこれで便利。
#Esc:: #+Esc:: If A_ThisHotkey = #Esc InputBox, STime, Shutdown, 何分後にシャットダウンしますか?, , 300, 130, , , , 60 Else If A_ThisHotkey = #+Esc InputBox, STime, Sleep, 何分後にスリープしますか?, , 300, 130, , , , 60 STime := STime * 1000 * 60 If (ErrorLevel = 0 && STime > 0) { Tick = % A_TickCount + STime If A_ThisHotkey = #Esc SetTimer, Shutdown, 1000 Else If A_ThisHotkey = #+Esc SetTimer, Sleep, 1000 } Return Shutdown: If A_TickCount > %Tick% { SetTimer, Shutdown, OFF MsgBox, 4097, Shutdown, シャットダウンを開始します, 10 IfMsgBox, Cancel Return Shutdown, 1 } Return Sleep: If A_TickCount > %Tick% { SetTimer, Sleep, OFF DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0) } Return