我使用这两个快捷方式来关闭显示:
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
可能是热键释放导致显示屏再次打开。这可以通过“超时”来解决,如 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