<?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=15521&amp;type=atom" />
	<updated>2020-07-24T23:45:42Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=15521</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140982#p140982" />
			<content type="html"><![CDATA[<p>Таймер очень просто устроен: <a href="http://forum.script-coding.com/viewtopic.php?id=15468">Вот тема</a></p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-24T23:45:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140982#p140982</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140873#p140873" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-23T18:17:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140873#p140873</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140863#p140863" />
			<content type="html"><![CDATA[<p>Лишние проблемы зачем создаёте?<br />-Переменная будет равна тому значению, что вы указали ранее. Она не имеет возможности сама измениться, как это вообще в голову могло придти?<br />-global тут не нужна, если вы будете использовать в одной функции.<br />-Поток в АХК один, псевдопоток можно создать таймером.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-23T16:10:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140863#p140863</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140845#p140845" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-23T07:59:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140845#p140845</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140787#p140787" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Pause, off</p></blockquote></div><p>Нет</p>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-19T18:00:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140787#p140787</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140786#p140786" />
			<content type="html"><![CDATA[<p>Поэтому я не использую паузу) - фиг поймёшь как оно работает, а как нет.</p><p>Возможно так нужно паузу вырубать:</p><div class="codebox"><pre><code>Pause, off</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-19T17:37:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140786#p140786</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140785#p140785" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-19T16:58:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140785#p140785</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140780#p140780" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Можно объявить хук клавиши. После нажатия на неё меняет переменной значение, в теле цикла это событие обрабатывается и меняет значение переменной обратно, выключает хук клавиши.</p></blockquote></div><p>Дак запускать то назад как будешь? <br />Это разные клавиши и на запуск и на выход? Оно у меня и есть, проверяет значение функции и выходит если используется. Но это автоматически, а не по нажатию. Код то для того чтобы автоматизировать действия, а не прибавить нажатий.<br />Непонимаю почему не работает Suspend и Pause для циклов...</p>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-19T14:20:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140780#p140780</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140779#p140779" />
			<content type="html"><![CDATA[<p>В теле цикла указать условие на выход - некая переменная равна 1 = выход из цикла. Ранее в моём коде уже было такое - ожидаем клавишу если была нажата - выход из цикла.<br />Можно объявить хук клавиши. После нажатия на неё меняет переменной значение, в теле цикла это событие обрабатывается и меняет значение переменной обратно, выключает хук клавиши.</p><p>Или я чего не понимаю?</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-19T13:40:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140779#p140779</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140749#p140749" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>кнопку на выход из цикла</p></blockquote></div><p>Но он в него опять заходит, потому что цикл указан как бесконечный, и на какой модификатор включить условие &quot;пока&quot; я не знаю. Вот с Caps/Num и т.п. не работает</p>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-19T10:49:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140749#p140749</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140748#p140748" />
			<content type="html"><![CDATA[<p>Pause/Suspend лично не использую. Мне проще установить ограничения, либо указать кнопку на выход из цикла. Например, пока нажата ЛКМ производится цикл, когда отпущу - прерывается.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-19T10:38:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140748#p140748</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140743#p140743" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Тогда вопрос - зачем нужно определять включенность клавиши моим методом - если её итак хорошо определяет сам скрипт:</p></blockquote></div><p>Чтобы можно было выключить/поставить на паузу скрипт. Потому что на другие команды он не реагирует. Где бы я не задавал ~Pause/Suspend они не останавливают скрипт. (А именно ту часть, которая ищет пиксели) А если останавливают то не запускают снова.</p>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-19T04:27:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140743#p140743</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140741#p140741" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-18T14:34:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140741#p140741</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140734#p140734" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[fgslm]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40966</uri>
			</author>
			<updated>2020-07-18T04:22:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140734#p140734</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Состояние клавиш в цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=140709#p140709" />
			<content type="html"><![CDATA[<p><strong>fgslm</strong><br />Приведите пример кода, так может будет хоть немного понятно где проблема.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-07-16T19:23:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=140709#p140709</id>
		</entry>
</feed>
