<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AutoHotkey: блокировка ввода с клавиатуры для указанного окна]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=1250&amp;type=atom" />
	<updated>2008-03-11T18:46:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=1250</id>
		<entry>
			<title type="html"><![CDATA[AutoHotkey: блокировка ввода с клавиатуры для указанного окна]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=9712#p9712" />
			<content type="html"><![CDATA[<p>Пример создаёт файл &quot;hello.txt&quot; во временном каталоге пользователя и запускает блокнот с этим файлом. После этого блокируется ввод с клавиатуры (но не мышь) в это окно блокнота. Пример демонстрирует возможность блокировки клавиатуры (но не мыши) для указанного окна.<br /></p><div class="codebox"><pre><code>#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</code></pre></div><p>Автор примера - <strong>DStar</strong>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2008-03-11T18:46:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=9712#p9712</id>
		</entry>
</feed>
