<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AutoHotkey: блокировка ввода с клавиатуры для указанного окна]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=1250</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=1250&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AutoHotkey: блокировка ввода с клавиатуры для указанного окна».]]></description>
		<lastBuildDate>Tue, 11 Mar 2008 18:46:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AutoHotkey: блокировка ввода с клавиатуры для указанного окна]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=9712#p9712</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Tue, 11 Mar 2008 18:46:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=9712#p9712</guid>
		</item>
	</channel>
</rss>
