Тема: 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.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.