<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Блокировка нажатых клавиш]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7587&amp;type=atom" />
	<updated>2012-09-20T06:25:08Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7587</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Блокировка нажатых клавиш]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=64008#p64008" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#if !FirstPress() ; клавиши указанные ниже будут срабатывать лишь если нажаты впервые
    vk57::
    vk41::
    vk53::
    vk44::return
#if FirstPress(key := LTrim(A_ThisHotkey, &quot;+&quot;)) ; клавиши указанные ниже будут срабатывать лишь если key была нажата более одного раза, при этом состояние key будет сброшено
    +vk57::
    +vk41::
    +vk53::
    +vk44::MsgBox клавиша %key% была заблокирована
#if

FirstPress(resetKeyState = &quot;&quot;)
{
    static KeyState := {}
    return resetKeyState? ObjRemove(KeyState, resetKeyState) : !ObjHasKey(KeyState, A_ThisHotkey) &amp;&amp; ObjInsert(KeyState, A_ThisHotkey, true)
}</code></pre></div><p>Прочитал первое сообщение <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>#if !FirstPress()
    vk41::
    vk53::
    vk44::return
#if

FirstPress()
{
    static priorHotkey
    return priorHotkey &lt;&gt; A_ThisHotkey, priorHotkey := A_ThisHotkey
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2012-09-20T06:25:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=64008#p64008</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Блокировка нажатых клавиш]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=64000#p64000" />
			<content type="html"><![CDATA[<p>Спасибо, Irbis. Это оригинально, но можно ли подобное сделать как-то без SendInput? <br />Например, при нажатии на А - скрипт никак не реагирует, а если на А нажать еще раз - хоть сразу, хоть через час - не важно через какое время, т.е. при повторном нажатии на А - эта клавиша блокируется. И разблокируется лишь нажатием S или D как описано в первом посте.<br />Просто игрулька для которой нужен этот скрипт имеет жесткую систему защиты, любые эмулированные нажатия (любые send&#039;ы и им подобное) не проходят в окно игры. <br />Я копался в справке по АХК, вот vk41::return - блокирует клавишу, а как заблокировать ее при условии (повторное нажатие) и разблокировать при нажатии на другие определенные клавиши мне не понятно.</p>]]></content>
			<author>
				<name><![CDATA[avgur]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27488</uri>
			</author>
			<updated>2012-09-19T22:53:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=64000#p64000</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Блокировка нажатых клавиш]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=63935#p63935" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>*$vk41::
*$vk44::
*$vk53::
if (A_ThisHotKey != A_PriorHotKey)
   SendInput % &quot;{&quot; SubStr(A_ThisHotKey,3) &quot;}&quot;
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-09-18T04:51:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=63935#p63935</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Блокировка нажатых клавиш]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=63931#p63931" />
			<content type="html"><![CDATA[<p>Помогите выполнить следующую задачу:<br />Есть три клавиши A, S и D. <br />Надо сделать так чтобы если была нажата один раз клавиша А (или S или D), то она должна напечататься один раз и заблокироваться. А две другие клавиши разблокироваться.<br />Если нажать другую из оставшихся двух клавиш, например, S, то она должна напечататься один раз и заблокироваться, а D и А соответственно разблокироваться.</p>]]></content>
			<author>
				<name><![CDATA[avgur]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27488</uri>
			</author>
			<updated>2012-09-18T00:31:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=63931#p63931</id>
		</entry>
</feed>
