Дисплей включается после того, как я выключаю его с помощью команды AutoHotkey

Дисплей включается после того, как я выключаю его с помощью команды AutoHotkey

Я использую эти две комбинации клавиш для отключения дисплея:

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

Однако, нередко, дисплей мгновенно включается после использования этой горячей клавиши. Я нажимаю ее снова четыре-семь раз, и он снова включается. Затем я немного подстраиваю мышь и пробую выключить. Иногда это работает, а иногда нет.

Также, если я использую кнопку «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 должен снова включать монитор, что говорит о том, что ваш скрипт может выполнять команды выключения и включения последовательно.

решение2

Вероятно, это происходит из-за отпускания горячей клавиши(-ок), которая снова включает дисплей. Это можно решить либо "тайм-аутом", как в ответе Дэвида Меткалфа, либо просто дождаться отпускания горячей клавиши и только после этого выключить дисплей. Идиоматическим способом сделать это является использование модификатора 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

Связанный контент