Escuche el evento de pantalla apagada y desactive el mouse en Windows

0

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á encendido).

He leído todos los recursos diciéndome exactamente cómo "no se puede hacer", por ejemplo, esta pregunta . O aquellos que dicen desconectar el mouse, o poner el mouse al revés, o evitar que el mouse active la PC de la 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 el protector de pantalla en caso de evento.
  • de lo contrario, intercepte al menos un comando explícito de apagado del monitor que envío mediante la ejecución de un archivo monitorOff.bat o un comando nircmd o el comando AutoHotkey AHK.
  • luego ejecute una secuencia de comandos que deshabilita inmediatamente mi mouse / mouse / periherals sin teclado.
  • luego, si las pantallas se despiertan, o si el protector de pantalla está cerrado, o al menos si se presiona cualquier tecla del teclado, vuelva a habilitar el mouse.

Salud.

[EDITAR]

Tenemos una gran solución con AHK por usuario3419297. Idealmente, aunque la funcionalidad también debería funcionar si / mientras Windows está Bloqueado (no desconectado, pero bloqueado).

Tal vez de alguna manera use teclas adhesivas como dijo DaaBoss u otras partes de la accesibilidad de Windows.

Salto espectral
fuente
Sin ayuda, la "policía editora" odiaba / rechazaba, y no podía entender POR QUÉ lo querría, (¡cansado de esto!). Lo entiendo y veo valor en el desarrollo de una gran solución. No creo que veas una "respuesta fácil" aquí. Si hubiera una manera de contactarlo, podríamos ir y venir hasta que los dos estuviéramos satisfechos. ENTONCES publique la respuesta con las MUESTRAS de código, pero también tenga disponible una solución decente "comercialmente aceptable". La clave aquí es DISEÑAR una gran interfaz de usuario. Por ejemplo, tal vez use el método de "teclas adhesivas" que Windows tiene para activar la pantalla, solo aplicando el mouse en lugar del teclado.
DaaBoss

Respuestas:

1

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 apague o presione Win + L para bloquear el sistema, puede hacerlo usando un script AHK que se ejecuta permanentemente. En este script puede agregar más cosas (teclas de acceso rápido, hotstrings, funciones, etc.) que facilitan su 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
usuario3419297
fuente
Esto es bastante bueno Cambié BlockInput Ona BlockInput MouseMovey BlockInput Offpara BlockInput MouseMoveOff. No pude descubrir cómo desbloquearlo presionando cualquier tecla del teclado en lugar de solo la tecla F1 o lo que sea.
Spectraljump
Esperaré un poco por las alternativas antes de aceptar esta respuesta, porque AHK obviamente no funciona si Windows está bloqueado (que es lo que eventualmente hace mi PC, se bloquea), así que si el mouse se mueve y Windows está bloqueado, las pantallas se iluminan arriba.
Spectraljump
Ver también mi respuesta editada.
user3419297