1

Тема: AutoHotkey: блокировка ввода с клавиатуры для указанного окна

Пример создаёт файл "hello.txt" во временном каталоге пользователя и запускает блокнот с этим файлом. После этого блокируется ввод с клавиатуры (но не мышь) в это окно блокнота. Пример демонстрирует возможность блокировки клавиатуры (но не мыши) для указанного окна.

#Persistent

    WinTtl=hello        ; окно (заголовок), в котором отключить ввод с клавиатуры

    SetTimer, BlockKbd, 100    ; вызов кода, который будет блокировать активность клавиатуры

    ;
    ; тренируемся на блокноте, у него имя окна совпадает с именем файла
    ;
    FileDelete, %temp%\%WinTtl%.txt
    FileAppend, Hello!, %temp%\%WinTtl%.txt
    Run, notepad %temp%\%WinTtl%.txt

    Return

;
; Код, который отслеживает активацию окна,
; в котором необходимо заблокировать ввод с клавиатуры
;
BlockKbd:
    SetTimer, BlockKbd, Off

    Loop 
    {
        WinWaitActive, %WinTtl%        ; ждать активации окна
        SetTimer, UnBlockKbd, 100    ; вызов кода, который отслеживает переключение окна в неактивное состояние
        Input, InputKeys,, {vkFF}    ; весь ввод с клавиатуры перенаправляем на себя, ждём нажатия несуществующей клавиши
    }
    Return


;
; Код, который отслеживает переключение в неактивное состояние окна,
; в котором необходимо заблокировать ввод с клавиатуры
;
UnBlockKbd:
    SetTimer, UnBlockKbd, Off
    WinWaitNotActive, %WinTtl%    ; ждём, когда окно переключится в неактивное состояние
    SendEvent, {vkFF}        ; посылаем сами себе клавишу {vkFF} (Input закончит работу)
    Return

Автор примера - DStar.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.