<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как обойти KeyWait и завершить Loop]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6398&amp;type=atom" />
	<updated>2011-11-09T10:36:21Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6398</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53364#p53364" />
			<content type="html"><![CDATA[<p>Большое спасибо всем кто помог! С помощью приведенных примеров наконец составил то что хотел.</p>]]></content>
			<author>
				<name><![CDATA[Krotus]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27330</uri>
			</author>
			<updated>2011-11-09T10:36:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53364#p53364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53275#p53275" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2011-11-05T14:11:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53275#p53275</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53274#p53274" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-05T13:44:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53274#p53274</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53272#p53272" />
			<content type="html"><![CDATA[<p>Замени break на sleep,100.<br />Вообще это для того чтобы после нажатия на Esc левая кнопка работала как обычно.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-05T13:24:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53272#p53272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53270#p53270" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Krotus]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27330</uri>
			</author>
			<updated>2011-11-05T13:07:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53270#p53270</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53261#p53261" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-05T11:10:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53261#p53261</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53257#p53257" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2011-11-05T10:57:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53257#p53257</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53256#p53256" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Krotus пишет:</cite><blockquote><p><span style="color: blue">В варианте Alectric скрипт почему то зависает после 3-4 циклов</span>...</p></blockquote></div><p>А в какой момент перестает работать? У меня нормально работает.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-05T10:57:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53256#p53256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53255#p53255" />
			<content type="html"><![CDATA[<p>Сделайте для LButton отдельный обработчик, который зависит от значения глобальной переменной. А в WheelUp/WheelDown меняйте значение этой переменной.</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-11-05T10:48:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53255#p53255</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53253#p53253" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-05T10:45:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53253#p53253</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53247#p53247" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Krotus]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27330</uri>
			</author>
			<updated>2011-11-05T09:33:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53247#p53247</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53222#p53222" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2011-11-04T13:18:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53222#p53222</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53207#p53207" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-03T18:32:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53207#p53207</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53200#p53200" />
			<content type="html"><![CDATA[<p>К сожалению не срабатывает... там видно где то необходим Break для полной остановки предыдущего цикла после начала нового блока</p>]]></content>
			<author>
				<name><![CDATA[Krotus]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27330</uri>
			</author>
			<updated>2011-11-03T18:07:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53200#p53200</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как обойти KeyWait и завершить Loop]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=53190#p53190" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2011-11-03T17:25:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=53190#p53190</id>
		</entry>
</feed>
