<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Как обойти KeyWait и завершить Loop]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6398</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6398&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Как обойти KeyWait и завершить Loop».]]></description>
		<lastBuildDate>Wed, 09 Nov 2011 10:36:21 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53364#p53364</link>
			<description><![CDATA[<p>Большое спасибо всем кто помог! С помощью приведенных примеров наконец составил то что хотел.</p>]]></description>
			<author><![CDATA[null@example.com (Krotus)]]></author>
			<pubDate>Wed, 09 Nov 2011 10:36:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53364#p53364</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53275#p53275</link>
			<description><![CDATA[<div class="quotebox"><cite>Krotus пишет:</cite><blockquote><p>...на строке WD:=WD?0:1, Counter:=WU:=0 выдает ошибку...</p></blockquote></div><p><span style="color: #FF0000">Krotus</span> У меня всё работает:</p><div class="codebox"><pre><code>WheelDown::
   Hotkey, WheelDown,, Off
;   Send, +{1}
;   Sleep, 300
   WD:=WD?0:1, Counter:=WU:=0
   TrayTip,, % WD?&quot;WD enable&quot;
          . &quot;`nWU disable&quot;:&quot;WD &amp; WU disable&quot;
   Sleep, 500
   Hotkey, WheelDown,, On
   Return

WheelUp::
   Hotkey, WheelUp,, Off
;   Send, +{2}
;   Sleep, 300
   WU:=WU?0:1, Counter:=WD:=0
   TrayTip,, % WU?&quot;WU enable&quot;
          . &quot;`nWD disable&quot;:&quot;WU &amp; WD disable&quot;
   Sleep, 500
   Hotkey, WheelUp,, On
   Return

LButton::SetTimer, Action, 1

Action:
   Counter++
   If WU
   {
;      Click
;      Send, ^{1}
;      Click
;      Send, ^{2}
      ToolTip, % &quot;action for WU (counter &quot;Counter &quot;)&quot;
   }
   Else If WD
   {
;      Click
;      Send, +{1}
;      Click
;      Send, +{2}
      ToolTip, % &quot;action for WD (counter &quot;Counter &quot;)&quot;
   }
   Else
   {
      SetTimer, Action, Off
      ToolTip, action for LBM
      Click, D
      KeyWait, LButton
      Click, U
      Counter:=0
      ToolTip
   }
   Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Sat, 05 Nov 2011 14:11:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53275#p53275</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53274#p53274</link>
			<description><![CDATA[<p>Добавил коментарии.<br /></p><div class="codebox"><pre><code>#persistent   ; выполнять код бесконечно


Loop
{
  KeyWait, LButton, D
  if work=1
  {
    MouseClick, Left
    send, +{1}
    MouseClick, Left
    send, +{2}
  }
  else if work=2
  {
    MouseClick, Left
    send, ^{1}
    MouseClick, Left
    send, ^{2}
  }
  else if work=3   ; если нажата клавиша Esc просто ждать 100 милисек
    sleep,100
  else if work=4   ; если нажата клавиша в которой work была задана равной 4
  {
    ; Сюда вставляй свой код
  }
  else if work=5   ; ну думаю принцип понятен уже
    sleep,100
}
Return


                   ; Все клавиши и действия для них пиши после цикла
Shift::
work=1
Send +{1}  ; добавляй сюда условия которые тебе нужны перед кликами мышкой
Sleep 300

ctrl::
work=2
; добавляй сюда условия которые тебе нужны перед кликами мышкой

esc::
work=3
; добавляй сюда условия которые тебе нужны перед кликами мышкой</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 05 Nov 2011 13:44:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53274#p53274</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53272#p53272</link>
			<description><![CDATA[<p>Замени break на sleep,100.<br />Вообще это для того чтобы после нажатия на Esc левая кнопка работала как обычно.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 05 Nov 2011 13:24:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53272#p53272</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53270#p53270</link>
			<description><![CDATA[<p><span style="color: #FF0000"> Grey</span> при запуске на строке WD:=WD?0:1, Counter:=WU:=0 выдает ошибку...<span style="color: #FF0000"> Александр_</span> Спасибо за ответ но так как я вначале поста уже сообщил что с AHK я работаю недавно многие возможные в нем функции мне пока непонятны и как их реализовать. Поэтому прошу пример скрипта. <span style="color: blue"> Alectric </span> Все работает но только один раз, потом Break не срабатывает..&nbsp; Хотя вижу что прописано все вроде верно но цикл упорно не прекращается поворотом колеса мыши и при переходе на как и прописано на следующий блок не прекращает цикл Loop исполняемого . В идеале дожно быть примерно так:</p><br /><div class="codebox"><pre><code> Код:

WheelDown:: ; Переключение панели  с прекращением исполняемого (если есть) цикла
Send +{1}
Sleep 300

Loop
{
KeyWait, LButton, D ; Ожидание клика после которого спам кнопок в данном блоке и опять ожидание клика
MouseClick, Left
send, ^{1}
MouseClick, Left
send, ^{2} 
}
Return


WheelUp::  ; Переключение панели с прекращением исполняемого (если есть) цикла
Send +{2}
Sleep 300
Loop
{
KeyWait, LButton, D  ; Ожидание клика после которого спам кнопок в данном блоке и опять ожидание клика
MouseClick, Left
send, ^{1}
MouseClick, Left
Send, send, ^{2}
}
Return

F1::                            ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок                 
F2::                           ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок
F3::                           ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Krotus)]]></author>
			<pubDate>Sat, 05 Nov 2011 13:07:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53270#p53270</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53261#p53261</link>
			<description><![CDATA[<p>Я ошибся...<br />Вот так точно работает:<br /></p><div class="codebox"><pre><code>#persistent

Loop
{
  KeyWait, LButton, D
  if work=1
  {
    MouseClick, Left
    send, +{1}
    MouseClick, Left
    send, +{2}
  }
  else if work=2
  {
    MouseClick, Left
    send, ^{1}
    MouseClick, Left
    send, ^{2}
  }
  else if work=3
    break
}
Return



Shift::work=1
ctrl::work=2
esc::work=3</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 05 Nov 2011 11:10:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53261#p53261</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53257#p53257</link>
			<description><![CDATA[<div class="quotebox"><cite>Krotus пишет:</cite><blockquote><p>...ожидание отпускания Lbutton не совсем то.</p></blockquote></div><p>Не вопрос, можно и по другому:</p><div class="codebox"><pre><code>WheelDown::
   Hotkey, WheelDown,, Off
   Send, +{1}
   Sleep, 300
   WD:=WD?0:1, Counter:=WU:=0
   Sleep, 500
   Hotkey, WheelDown,, On
   Return

WheelUp::
   Hotkey, WheelUp,, Off
   Send, +{2}
   Sleep, 300
   WU:=WU?0:1, Counter:=WD:=0
   Sleep, 500
   Hotkey, WheelUp,, On
   Return

LButton::SetTimer, Action, 1

Action:
   If WU
   {
      Click
      Send, ^{1}
      Click
      Send, ^{2}
   }
   Else If WD
   {
      Click
      Send, +{1}
      Click
      Send, +{2}
   }
   Else
   {
      SetTimer, Action, Off
      Click, D
      KeyWait, LButton
      Click, U
   }
   Return</code></pre></div><p>Поворот колеса включает/отключает собственный цикл, и всегда отключает другой.</p>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Sat, 05 Nov 2011 10:57:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53257#p53257</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53256#p53256</link>
			<description><![CDATA[<div class="quotebox"><cite>Krotus пишет:</cite><blockquote><p><span style="color: blue">В варианте Alectric скрипт почему то зависает после 3-4 циклов</span>...</p></blockquote></div><p>А в какой момент перестает работать? У меня нормально работает.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 05 Nov 2011 10:57:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53256#p53256</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53255#p53255</link>
			<description><![CDATA[<p>Сделайте для LButton отдельный обработчик, который зависит от значения глобальной переменной. А в WheelUp/WheelDown меняйте значение этой переменной.</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Sat, 05 Nov 2011 10:48:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53255#p53255</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53253#p53253</link>
			<description><![CDATA[<p>Попробуй так:<br /></p><div class="codebox"><pre><code>WheelDown::
work=1    ; Работает первый

Send +{1}
Sleep 300

Loop
{
if work&lt;&gt;1          ; Если работает не первый - выход из цикла
  break
KeyWait, LButton, D
MouseClick, Left
send, ^{1}
MouseClick, Left
send, ^{2}
}
Return


WheelUp::
work=2             ; Работает второй цикл

Send +{2}
Sleep 300

Loop
{
if work&lt;&gt;2             ; Если работает не второй - выход из цикла
  break
KeyWait, LButton, D
MouseClick, Left
send, ^{1}
MouseClick, Left
Send, send, ^{2}
}
Return

F1::   ;Другой блок
work=3
;
;
Loop
{
if work&lt;&gt;3
  break
;
;
}
return

и т.д. и т.п</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 05 Nov 2011 10:45:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53253#p53253</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53247#p53247</link>
			<description><![CDATA[<p><span style="color: blue">В варианте Alectric скрипт почему то зависает после 3-4 циклов</span>...<span style="color: #FF0000"> Grey все работает но ожидание отпускания Lbutton не совсем то</span>. Спасибо, попробую с помощью данных примеров собрать то что хотелось-бы в идеале:</p><br /><div class="codebox"><pre><code>WheelDown:: ; Переключение панели  с прекращением исполняемого (если есть) цикла
Send +{1}
Sleep 300

Loop
{
KeyWait, LButton, D ; Ожидание клика после которого спам кнопок в данном блоке и опять ожидание клика
MouseClick, Left
send, ^{1}
MouseClick, Left
send, ^{2} 
}
Return


WheelUp::  ; Переключение панели с прекращением исполняемого (если есть) цикла
Send +{2}
Sleep 300
Loop
{
KeyWait, LButton, D  ; Ожидание клика после которого спам кнопок в данном блоке и опять ожидание клика
MouseClick, Left
send, ^{1}
MouseClick, Left
Send, send, ^{2}
}
Return

F1::                            ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок                 
F2::                           ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок
F3::                           ; Прекращение исполняемого цикла (если есть) и выполнение указанного блока
;Другой блок
и т.п</code></pre></div><p><span style="color: #FF0000">Пробую вставлять :</span><br />Gosub<br />Label<br />Break<br />Но пока неудачно.</p>]]></description>
			<author><![CDATA[null@example.com (Krotus)]]></author>
			<pubDate>Sat, 05 Nov 2011 09:33:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53247#p53247</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53222#p53222</link>
			<description><![CDATA[<div class="codebox"><pre><code>WheelDown::WD:=1, WU:=0
WheelUp::WU:=1, WD:=0
LButton::SetTimer, Action, 1
LButton Up::WD:=WU:=0

Action:
   If WU
   {
      Click
      Send, ^{1}
      Click
      Send, ^{2}
   }
   Else If WD
   {
      Click
      Send, +{1}
      Click
      Send, +{2}
   }
   Else
   {
      SetTimer, Action, Off
      Click, D
      KeyWait, LButton
      Click, U
   }
   Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Fri, 04 Nov 2011 13:18:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53222#p53222</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53207#p53207</link>
			<description><![CDATA[<p>Вообщето у меня сдесь 1 цикл в котором выбирается от какой клавиши сработало зацикливание.</p><p>Кстати у меня несрабатывает по ролику, но срабатывает по нормальным клавишам:<br /></p><div class="codebox"><pre><code>Shift::
ctrl::
esc::
Loop
{
  KeyWait, LButton, D
  if a_thishotkey=Shift
  {
    MouseClick, Left
    send, +{1}
    MouseClick, Left
    send, +{2}
  }
  else if a_thishotkey=ctrl
  {
    MouseClick, Left
    send, ^{1}
    MouseClick, Left
    send, ^{2}
  }
  else if a_thishotkey=esc
    sleep,10  
}
Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 03 Nov 2011 18:32:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53207#p53207</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53200#p53200</link>
			<description><![CDATA[<p>К сожалению не срабатывает... там видно где то необходим Break для полной остановки предыдущего цикла после начала нового блока</p>]]></description>
			<author><![CDATA[null@example.com (Krotus)]]></author>
			<pubDate>Thu, 03 Nov 2011 18:07:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53200#p53200</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=53190#p53190</link>
			<description><![CDATA[<p>Попробуй так:<br /></p><div class="codebox"><pre><code>WheelDown::
WheelUp::
esc::
Loop
{
  KeyWait, LButton, D
  if a_thishotkey=WheelDown
  {
    MouseClick, Left
    send, +{1}
    MouseClick, Left
    send, +{2}
  }
  else if a_thishotkey=WheelUp
  {
    MouseClick, Left
    send, ^{1}
    MouseClick, Left
    send, ^{2}
  }
  else if a_thishotkey=esc
    sleep,10  
}
Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 03 Nov 2011 17:25:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=53190#p53190</guid>
		</item>
	</channel>
</rss>
