Я хочу, чтобы мышь не просыпалась от экрана (пока компьютер включен, но экраны выключены или включена заставка).

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

Я хочу, чтобы кто-то помог мне разобраться в этом решении:

  • как перехватить событие отключения монитора или заставку о событии.
  • если нет, то, по крайней мере, перехватите явную команду отключения монитора, которую я посылаю, запустив файл monitorsOff.bat, команду nircmd или команду AutoHotkey AHK.
  • затем запустите скрипт, который немедленно отключит мои периферийные устройства мыши / мыши / не-клавиатуры.
  • затем, если экраны возвращаются в рабочее состояние, или если хранитель экрана закрыт, или, по крайней мере, если нажата какая-либо клавиша на клавиатуре, повторно включите мышь.

Приветствия.

[РЕДАКТИРОВАТЬ]

У нас есть одно отличное решение с AHK от пользователя 3419297. В идеале, хотя функциональность должна работать, если / когда окна заблокированы (не вышли из системы, но заблокированы).

Может быть, каким-то образом использовать липкие клавиши, как сказал DaaBoss, или другие части доступности Windows.

1 ответ1

1

Попробуйте этот скрипт 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

РЕДАКТИРОВАТЬ:

Вместо того, чтобы настраивать в параметрах питания время бездействия, после которого монитор выключается или нажимать Win+L для блокировки системы, вы можете сделать это, используя постоянно работающий скрипт AHK. В этом скрипте вы можете добавить больше вещей (горячие клавиши, горячие строки, функции и т.д.), Которые облегчат вашу работу.

#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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .