![Ouça o evento de desligamento da tela e desative o mouse no Windows](https://rvso.com/image/1552786/Ou%C3%A7a%20o%20evento%20de%20desligamento%20da%20tela%20e%20desative%20o%20mouse%20no%20Windows.png)
Quero evitar que o mouse ative minhas telas (enquanto meu PC estiver ligado, mas as telas estiverem desligadas ou o protetor de tela estiver ativado).
Eu li todos os recursos que me dizem exatamente como "isso não pode ser feito", por exemploessa questão. Ou aqueles que dizem para desconectar o mouse, virar o mouse de cabeça para baixo ou impedir que o mouse desperte o PC. - Não estou interessado nisso.
Quero que alguém me ajude a descobrir esta solução:
- como interceptar o evento monitor desligado ou o evento protetor de tela ligado.
- caso contrário, pelo menos intercepte um comando explícito de desligamento do monitor que eu envio executando um arquivo monitorsOff.bat ou um comando nircmd ou um comando AutoHotkey AHK.
- em seguida, execute um script que desative imediatamente meus periféricos de mouse/mouse/sem teclado.
- então, se as telas forem ativadas novamente, ou se o protetor de tela for fechado, ou pelo menos se alguma tecla do teclado for pressionada, reative o mouse.
Saúde.
[EDITAR]
Temos uma ótima solução com AHK do usuário3419297. Idealmente, a funcionalidade também deve funcionar se/enquanto o Windows estiver bloqueado (não desconectado, mas bloqueado).
Talvez de alguma forma usando teclas aderentes como DaaBoss disse, ou outras partes da acessibilidade do Windows.
Responder1
Experimente este script AHK:
$F1 Up:: ; or whatever combination you want
Keyboard_Blocked := true ; assign the Boolean value "true" or "1" to this variable
BlockInput On ; disable keyboard and mouse
SendMessage, 0x112, 0xF170, 2,, Program Manager ; turn the monitor off, similar to power saving mode
; or:
; Run path of your screensaver
return
; The #If directive creates context-sensitive hotkeys:
#If (Keyboard_Blocked) ; If this variable has the value "true"
$F1 Up:: ; press F1 to re-enable keyboard and mouse and turn the monitor on
BlockInput Off
Keyboard_Blocked := false
return
#If ; turn off context sensitivity
EDITAR:
Em vez de configurar nas opções de energia o tempo de inatividade após o monitor desligar ou pressionar Win+L para bloquear o sistema, você pode fazer isso usando um script AHK em execução permanente. Neste script você pode adicionar mais coisas (hotkeys, hotstrings, funções etc.) que facilitam seu trabalho.
#NoEnv
#SingleInstance Force
SetTimer, DetectTimeIdle, 50
return
DetectTimeIdle:
; lock the computer automatically after 20 seconds of inactivity.
; Replace 20000 with 60000 for 1 minute etc.
If (A_TimeIdle > 20000) ; as long as there is no input within the last 20 seconds
GoSub !F1 Up ; jump to this hotkey definition
return
; Press Alt+F1 to manually lock the computer
!F1 Up::
Keyboard_Blocked := true ; assign the Boolean value "true" or "1" to this variable
BlockInput On ; disable keyboard and mouse
SendMessage, 0x112, 0xF170, 2,, Program Manager ; turn the monitor off, similar to power saving mode
return
#If (Keyboard_Blocked)
; press F1 or F2 or Space ... to re-enable keyboard and mouse and turn the monitor on
$F1 Up::
$F2 Up::
$Space Up::
; ...
BlockInput Off
Keyboard_Blocked := false
; Move the mouse (speed 10) by 20 pixels to the right and 30 pixels down from its current location to unlock the computer:
MouseMove, 20, 30, 10, R
reload
return
#If