<?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=9060&amp;type=atom" />
	<updated>2013-12-23T06:36:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9060</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка нажатой одной из клавиш.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=78449#p78449" />
			<content type="html"><![CDATA[<p>Во-первых, в таком виде скрипт работать не будет - функция <strong>GetKeyState(KeyName [, &quot;P&quot; or &quot;T&quot;])</strong> требует параметров, которых нет в твоем примере.<br />Во-вторых, в примере процедура таймера запускается каждые 10мс, а не 10 секунд.<br />В-третьих, сама идея работы выбрана некорректно - запуск таймера не связан с моментом нажатия на клавишу Alt, из-за чего скрипт будет работать неправильно. Например, зажатие Alt может произойти за долю секунды до срабатывания таймера, и он благополучно &quot;отожмет&quot; Alt, хотя 10 секунд не прошло.</p><p>Ниже пример скрипта, который каждые 5 секунд сверяет логическое состояние Alt с физическим нажатием на клавишу - если физически клавиша не нажата, но имеет статус &quot;Down&quot;, скрипт &quot;отжимает&quot; ее.</p><div class="codebox"><pre><code>#InstallKeybdHook
SetTimer, test, 5000
test:
   if (GetKeyState(&quot;Alt&quot;) &amp;&amp; !GetKeyState(&quot;Alt&quot;, &quot;P&quot;))
      SendInput, {AltUp}
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-12-23T06:36:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=78449#p78449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка нажатой одной из клавиш.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=78437#p78437" />
			<content type="html"><![CDATA[<p>И можно ли идти по такому принципу:</p><div class="codebox"><pre><code>SetTimer , test , 10
test:
if (GetKeyState AltDown)
    Send , {AltUp}
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Zanoza]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26155</uri>
			</author>
			<updated>2013-12-22T22:34:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=78437#p78437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка нажатой одной из клавиш.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=78435#p78435" />
			<content type="html"><![CDATA[<p>Вопрос по теме - можно ли проверить зажатие клавиши (не физически а к примеру скриптом ) .<br />Таких как контрл ,шифт и альт. (Если зажата&nbsp; более 10 секунд)&nbsp; - то отжать ее?<br />Иногда случаются случаи когда они остаются нажаты в играх или после их выключения.</p>]]></content>
			<author>
				<name><![CDATA[Zanoza]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26155</uri>
			</author>
			<updated>2013-12-22T22:17:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=78435#p78435</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Проверка нажатой одной из клавиш.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=78388#p78388" />
			<content type="html"><![CDATA[<p>Так </p><div class="codebox"><pre><code>If (state1 = &quot;D&quot;) OR (state2 = &quot;D&quot;) OR (state3 = &quot;D&quot;) OR (state4 = &quot;D&quot;) </code></pre></div><p>либо </p><div class="codebox"><pre><code>If (state1 = &quot;D&quot; OR state2 = &quot;D&quot; OR state3 = &quot;D&quot; OR state4 = &quot;D&quot;) </code></pre></div><div class="quotebox"><cite>Валентина Гаврикова, Николай Козлов пишет:</cite><blockquote><p>чтобы в выражениях различать переменные и буквальные строки, последние необходимо заключать в двойные кавычки</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2013-12-21T18:48:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=78388#p78388</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Проверка нажатой одной из клавиш.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=78384#p78384" />
			<content type="html"><![CDATA[<p>Здравствуйте!</p><p>Прошу помощи, мой скрипт по задумке должен проверять зажата ли одна из клавиш (W, A, S или D):</p><div class="codebox"><pre><code>
$vk61::                   ;num01
{

GetKeyState, state1, VK57, P ;w
GetKeyState, state2, VK41, P ;a
GetKeyState, state3, VK53, P ;s
GetKeyState, state4, VK44, P ;d

if (state1=D || state2=D || state3=D || state4 = D)
    {
    MsgBox зажата W или A, или S, или D
    }
else
    {
    MsgBox НЕ зажато
    }
}
return

</code></pre></div><p>в любом случае не видит, что одна из клавиш&nbsp; зажата.</p><br /><p>Если для одной клавиши - все ок:</p><div class="codebox"><pre><code>
$vk61::                   ;num01
{
GetKeyState, state1, VK57, P ;w
if state1=D 
    {
    MsgBox зажата W 
    }
else
    {
    MsgBox НЕ зажато
    }
}
return

</code></pre></div><br /><p>Подскажите, как быть с 1м скриптом??</p><p>Спасибо</p>]]></content>
			<author>
				<name><![CDATA[freeker0k]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27280</uri>
			</author>
			<updated>2013-12-21T17:33:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=78384#p78384</id>
		</entry>
</feed>
