1. ホーム
  2. loops

[解決済み] AutoHotKeyのホットキーでSetTimerをオフに切り替えるには?

2022-02-26 19:20:45

質問

ある関数をトグルするスクリプトを書こうとしています。

これはAutoHotkey 2のスクリプトです。

j::
    SetTimer "NewTimer", 1000
    return

k::
    SetTimer "NewTimer", Off
    return

NewTimer() {
    SendInput "NewInput"
}

Jを押すとタイマーを開始し、Kを押すと停止します。 現状では、Kを押してもキーを押している間だけしか止まりません。 どうすればキーを押したままタイマーを止められるのでしょうか?

解決方法は?

k::
SetTimer "NewTimer" , "Off"
Return

Off は引用符で囲む必要があります。そうしないと、変数 "Off" の中身を渡そうとします。Kを保持すると一時停止するように見えるのは、ピリオドを急速に Off はNULLでエラーとなるため、以前の1000の周期に戻ります。

また、このタイマーのみであれば、単に SetTimer , "Off" も動作します。