AutoHotkeyコマンドでディスプレイをオフにした後、ディスプレイがオンになる

AutoHotkeyコマンドでディスプレイをオフにした後、ディスプレイがオンになる

ディスプレイをオフにするには、次の 2 つのショートカットを使用します。

Launch_Mail::
#T:: SendMessage, 0x112, 0xF170, 2,, Program Manager

ただし、このホットキーを使用すると、ディスプレイがすぐにオンに戻ることも珍しくありません。もう一度 4 ~ 7 回押すと、再びオンになります。次に、マウスを少し調整して、オフにしてみてください。うまくいく場合もあれば、うまくいかない場合もあります。

また、「Launch_Mail」ボタンを使用してもディスプレイがオフにならない場合は、「#T」ショートカットを使用します。ほとんどの場合、これでうまくいきますが、うまくいかないこともあります。

問題はマウスですか、それとも他の何かですか? ディスプレイをオフにするときにマウスも無効にする必要がありますか。

この問題を検索してみましたが、私の状況に似たものは見つかりませんでした。

あまり関係ないかもしれませんが、私はWindows 8.1とAHK v1.1.22.06を使用しています。

答え1

ここからスクリプトを使用しているようです:https://autohotkey.com/docs/commands/PostMessage.htm次のコードが提供されます。

#o::  ; Win+O hotkey that turns off the monitor.
Sleep 1000  ; Give user a chance to release keys (in case their release would wake up the monitor again).
; Turn Monitor Off:
SendMessage, 0x112, 0xF170, 2,, Program Manager  ; 0x112 is WM_SYSCOMMAND, 0xF170 is SC_MONITORPOWER.
; Note for the above: Use -1 in place of 2 to turn the monitor on.
; Use 1 in place of 2 to activate the monitor's low-power mode.
return

質問があります。スクリプト全体を使用していますか、それともその 1 行だけを使用していますか。コメントによると、-1 はモニターを再びオンにするはずなので、スクリプトがオフ コマンドとオン コマンドを連続して実行している可能性があります。

答え2

おそらく、ディスプレイを再びオンにするには、ホットキーを放す必要があります。これは、David Metcalfe の回答にあるように「タイムアウト」で解決するか、ホットキーが放されるまで待ってからディスプレイをオフにすることで解決できます。これを行う慣用的な方法は、修飾子を使用することですup(ドキュメンテーション)。

Launch_Mail Up::
#T Up:: SendMessage, 0x112, 0xF170, 2,, Program Manager

答え3

これにより、キーが解放されるのを待つことになります。代わりに必要なキーを置き換えるだけです。ここではAlt+を使用していますSpace

!Space::
    KeyWait Alt
    KeyWait Space
    SendMessage,0x112,0xF170,2,,Program Manager
Return

関連情報