![Escuche el evento de pantalla apagada y desactive el mouse en Windows](https://rvso.com/image/1552786/Escuche%20el%20evento%20de%20pantalla%20apagada%20y%20desactive%20el%20mouse%20en%20Windows.png)
Quiero evitar que el mouse active mis pantallas (mientras mi PC está encendida pero las pantallas están apagadas o el protector de pantalla está activado).
He leído todos los recursos que me dicen exactamente cómo "no se puede hacer", por ejemploesta pregunta. O aquellos que dicen que desenchufe el mouse, que gire el mouse hacia abajo o que evite que el mouse despierte la PC del estado de suspensión. - No me interesan esos.
Quiero que alguien me ayude a encontrar esta solución:
- cómo interceptar el evento de monitor apagado o protector de pantalla activado.
- si no, al menos intercepte un comando explícito de apagado de monitor que envío ejecutando un archivo monitorsOff.bat o un comando nircmd o AutoHotkey AHK.
- luego ejecute un script que deshabilite inmediatamente mi mouse/ratones/periherales que no sean teclado.
- luego, si las pantallas se activan nuevamente, o si el protector de pantalla está cerrado, o al menos si se presiona alguna tecla del teclado, vuelva a habilitar el mouse.
Salud.
[EDITAR]
Tenemos una gran solución con AHK del usuario3419297. Idealmente, la funcionalidad también debería funcionar si/mientras Windows está bloqueado (no cerrado, pero bloqueado).
Tal vez de alguna manera usando teclas adhesivas como dijo DaaBoss, u otras partes de la accesibilidad de Windows.
Respuesta1
Pruebe 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:
En lugar de configurar en las opciones de energía el tiempo de inactividad después de que el monitor se apaga o presionar Win+L para bloquear el sistema, puede hacerlo usando un script AHK que se ejecuta permanentemente. En este script puedes agregar más cosas (teclas de acceso rápido, cadenas de acceso rápido, funciones, etc.) que faciliten tu trabajo.
#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