<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Состояние клавиш в цикле]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=15521</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15521&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Состояние клавиш в цикле».]]></description>
		<lastBuildDate>Fri, 24 Jul 2020 23:45:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140982#p140982</link>
			<description><![CDATA[<p>Таймер очень просто устроен: <a href="http://forum.script-coding.com/viewtopic.php?id=15468">Вот тема</a></p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Fri, 24 Jul 2020 23:45:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140982#p140982</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140873#p140873</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p> таймером.</p></blockquote></div><p>Это мне еще рано, я еще из цикла свой код вывести не могу<br />Но я был бы не против если бы вы подсказали как сделать таймер применения чего-то спустя (X) времени после чего-то<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>-global тут не нужна, если вы будете использовать в одной функции.</p></blockquote></div><p>А если будет функций много?</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Thu, 23 Jul 2020 18:17:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140873#p140873</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140863#p140863</link>
			<description><![CDATA[<p>Лишние проблемы зачем создаёте?<br />-Переменная будет равна тому значению, что вы указали ранее. Она не имеет возможности сама измениться, как это вообще в голову могло придти?<br />-global тут не нужна, если вы будете использовать в одной функции.<br />-Поток в АХК один, псевдопоток можно создать таймером.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Thu, 23 Jul 2020 16:10:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140863#p140863</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140845#p140845</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>После нажатия на неё меняет переменной значение, в теле цикла это событие обрабатывается и меняет значение переменной обратно, выключает хук клавиши.</p></blockquote></div><p>Где в таком случае надо объявлять переменную? Т.е. где находится её область видимости и доступа?<br />Если я напишу перед циклом a = 0, а внутри a = 1, и при следующей проверке в другой части цикла какому значению она будет равна?<br />Где-то видел приписку к переменной global перед изменением значения. Где в таком случае будет видна переменная?<br />-------<br />Как этой командой одновременнопроверить несколько клавиш?<br /></p><div class="codebox"><pre><code> 
Key := GetKeyState(&quot;Alt&quot;, &quot;P&quot;)=1 ? &quot;Alt&quot; : 0
 If Key
  Break</code></pre></div><p>Если я напишу функцию, содержащую в себе ссылку&nbsp; на клавиши, которые надо будет проверять,<br /></p><div class="codebox"><pre><code>TestKey(Hotkey)
Hotkey:: Alt, Ctrl, Shift, a, b, c, v, x, z, n, 1, 2, 3, 4, 5, 6, 7,,,, </code></pre></div><p> то как её написать?<br />Чтобы перед циклом указать <br /></p><div class="codebox"><pre><code>Key := GetKeyState(&quot;%HotKey%&quot;, &quot;P&quot;)=1 ? &quot;%HotKey%&quot; : 0</code></pre></div><p>а внутри <br /></p><div class="codebox"><pre><code>if %TestKey%
  Break</code></pre></div><p>Вобще непонятна работа global переменной в отношении циклов и приоритетов потоков</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Thu, 23 Jul 2020 07:59:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140845#p140845</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140787#p140787</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Pause, off</p></blockquote></div><p>Нет</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sun, 19 Jul 2020 18:00:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140787#p140787</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140786#p140786</link>
			<description><![CDATA[<p>Поэтому я не использую паузу) - фиг поймёшь как оно работает, а как нет.</p><p>Возможно так нужно паузу вырубать:</p><div class="codebox"><pre><code>Pause, off</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sun, 19 Jul 2020 17:37:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140786#p140786</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140785#p140785</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>- При нажатии F2 поиск пикселей и при нахождении посыл клавиши (в зависимости обнаружен ли цвет в нужных позициях).</p></blockquote></div><p>Ладно, щас сформулирую - скрипт ожидает включения клавиши (CapsLock к примеру), но она не просто тыкнул, а чтобы её состояние через GetKeyState(&quot;Capslock&quot;, &quot;T&quot;) = D т.е. 1, т.е. вкл. А затем начинает работать цикл. <br />Если GetKeyState(&quot;Capslock&quot;, &quot;T&quot;) = U, т.е. 0, т.е. выкл, то цикл не работает. Вот идея.</p><br /><p>-------------------------</p><p>Ну то есть он вот так<br /></p><div class="codebox"><pre><code>while 1 == 1
{
toggle := GetKeyState(&quot;Capslock&quot;, &quot;T&quot;)
if toggle = 0
Pause
else
Выйти из паузы!!!
}
return</code></pre></div><p>Работает, <br />но вот только из паузы не выходит<br />Есть обратная команда?</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sun, 19 Jul 2020 16:58:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140785#p140785</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140780#p140780</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Можно объявить хук клавиши. После нажатия на неё меняет переменной значение, в теле цикла это событие обрабатывается и меняет значение переменной обратно, выключает хук клавиши.</p></blockquote></div><p>Дак запускать то назад как будешь? <br />Это разные клавиши и на запуск и на выход? Оно у меня и есть, проверяет значение функции и выходит если используется. Но это автоматически, а не по нажатию. Код то для того чтобы автоматизировать действия, а не прибавить нажатий.<br />Непонимаю почему не работает Suspend и Pause для циклов...</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sun, 19 Jul 2020 14:20:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140780#p140780</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140779#p140779</link>
			<description><![CDATA[<p>В теле цикла указать условие на выход - некая переменная равна 1 = выход из цикла. Ранее в моём коде уже было такое - ожидаем клавишу если была нажата - выход из цикла.<br />Можно объявить хук клавиши. После нажатия на неё меняет переменной значение, в теле цикла это событие обрабатывается и меняет значение переменной обратно, выключает хук клавиши.</p><p>Или я чего не понимаю?</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sun, 19 Jul 2020 13:40:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140779#p140779</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140749#p140749</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>кнопку на выход из цикла</p></blockquote></div><p>Но он в него опять заходит, потому что цикл указан как бесконечный, и на какой модификатор включить условие &quot;пока&quot; я не знаю. Вот с Caps/Num и т.п. не работает</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sun, 19 Jul 2020 10:49:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140749#p140749</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140748#p140748</link>
			<description><![CDATA[<p>Pause/Suspend лично не использую. Мне проще установить ограничения, либо указать кнопку на выход из цикла. Например, пока нажата ЛКМ производится цикл, когда отпущу - прерывается.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sun, 19 Jul 2020 10:38:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140748#p140748</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140743#p140743</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Тогда вопрос - зачем нужно определять включенность клавиши моим методом - если её итак хорошо определяет сам скрипт:</p></blockquote></div><p>Чтобы можно было выключить/поставить на паузу скрипт. Потому что на другие команды он не реагирует. Где бы я не задавал ~Pause/Suspend они не останавливают скрипт. (А именно ту часть, которая ищет пиксели) А если останавливают то не запускают снова.</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sun, 19 Jul 2020 04:27:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140743#p140743</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140741#p140741</link>
			<description><![CDATA[<p><strong>fgslm</strong><br />Ваш вариант написания кода - ужас в моих глазах:<br />- Отступы, без них сложно понять что к чему относится.<br />- &quot;while 1 == 1&quot; - совсем не понятно, для чего?<br />- RepeatPress откуда взялось?<br />- toggle - тоже зачем? Она не создаётся где либо как и RepeatPress.</p><p>Опишите цель скрипта. Я так понял:<br />- Если включен капс, разрешить перехват клавиши F2.<br />- При нажатии F2 поиск пикселей и при нахождении посыл клавиши (в зависимости обнаружен ли цвет в нужных позициях).</p><p>Тогда вопрос - зачем нужно определять включенность клавиши моим методом - если её итак хорошо определяет сам скрипт:</p><div class="codebox"><pre><code>#If GetKeyState(&quot;CapsLock&quot;,&quot;T&quot;)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sat, 18 Jul 2020 14:34:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140741#p140741</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140734#p140734</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p><strong>fgslm</strong><br />Приведите пример кода, так может будет хоть немного понятно где проблема.</p></blockquote></div><p>Как пример с использованием команды KeyWait из вашего примера:<br /></p><div class="codebox"><pre><code>
#If GetKeyState(&quot;CapsLock&quot;,&quot;T&quot;)
F2::
KeyWait, %A_ThisHotkey%, U	; Ожидаем отпука текущей клавиши.
Loop
{
 KeyWait, CapsLock, T0.1
 Key := GetKeyState(&quot;CapsLock&quot;, &quot;T&quot;)=1 ? &quot;CapsLock&quot; : 0
 If Key
  Break

while 1 == 1
{
if RepeatPress
break
else
{
;ToolTip %toggle%
PixelGetColor, M, 13, 146
PixelGetColor, RM, 24, 146
;ToolTip %M%
if (toggle &amp;&amp; M != 0x000000 &amp;&amp; RM != 0x000000)
SendInput {1}
;ToolTip %M%
sleep 1
{
PixelGetColor, R, 13, 161
PixelGetColor, RR, 24, 161
if (R != 0x000000 &amp;&amp; RR != 0x000000) 
SendInput {2}
sleep 1
}
{
PixelGetColor, V, 13, 173
PixelGetColor, RV, 24, 173
if (V != 0x000000 &amp;&amp; RV != 0x000000)
SendInput {3}
sleep 1
}
}
}
return
}

ToolTip, % &quot;Включена клавиша: &quot; Key
Sleep, 5000
ToolTip
Return</code></pre></div><p>Через&nbsp; GetKeyState тоже не лучше - скрипт спотыкается и больше работать не хочет.</p>]]></description>
			<author><![CDATA[null@example.com (fgslm)]]></author>
			<pubDate>Sat, 18 Jul 2020 04:22:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140734#p140734</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140709#p140709</link>
			<description><![CDATA[<p><strong>fgslm</strong><br />Приведите пример кода, так может будет хоть немного понятно где проблема.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Thu, 16 Jul 2020 19:23:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140709#p140709</guid>
		</item>
	</channel>
</rss>
