<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9823&amp;type=atom" />
	<updated>2014-07-24T00:14:58Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=9823</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85076#p85076" />
			<content type="html"><![CDATA[<p>Да.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-07-24T00:14:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85076#p85076</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85075#p85075" />
			<content type="html"><![CDATA[<p>Все равно краш даже так. Ваша версия AHK 1.1.15.<strong>00</strong> ?</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-24T00:08:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85075#p85075</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85074#p85074" />
			<content type="html"><![CDATA[<p>У меня так работает.<br /></p><div class="codebox"><pre><code>IfWinNotActive, Name
{
   if !(lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
   {
      lock_3 = 1
      PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
      if ErrorLevel = 1
      Retry:
      {
         msgbox
         PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
         if (ErrorLevel = 1 || sell != 1)
         {
            if (mustang = 5 &amp;&amp; sell = 5)
               SendInput  12
            GoTo, Retry
         }
      }
   }
}
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-07-24T00:01:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85074#p85074</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85073#p85073" />
			<content type="html"><![CDATA[<p>Нет, там вначале идет еще так:<br /></p><div class="codebox"><pre><code>~3::
IfWinActive, Name
{
  if (lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
  {
    lock_3 = 1
    PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
Retry:
if ErrorLevel = 1
{
   PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
   if (ErrorLevel = 1 || sell != 1)
   {
      if (mustang = 5 &amp;&amp; sell = 5)
         SendInput  12
      ErrorLevel = 1
      GoSub, Retry
   }
}
}
}
Return</code></pre></div><p>Если ставить &quot;Retry:&quot; даже перед &quot;IfWinActive, Name&quot;, то все равно идет краш.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T23:46:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85073#p85073</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85072#p85072" />
			<content type="html"><![CDATA[<p>Получится.<br />А, не заметил у вас знак &quot;или&quot; в этой строчке. <br /></p><div class="codebox"><pre><code>if (ErrorLevel = 1 || sell != 1)</code></pre></div><p>Поправил код.<br /></p><div class="codebox"><pre><code>PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
Retry:
if ErrorLevel = 1
{
   PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
   if (ErrorLevel = 1 || sell != 1)
   {
      if (mustang = 5 &amp;&amp; sell = 5)
         SendInput  12
      ErrorLevel = 1
      GoSub, Retry
   }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-07-23T23:13:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85072#p85072</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85071#p85071" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>С чего вы это взяли?</code></pre></div><p>Потому что в моем коде без блока не получится. Если рассматривать строго одну команду без блоков, то вариант работает.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T23:09:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85071#p85071</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85070#p85070" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Второй вариант опять будет помещать GoTo внутрь блока</p></blockquote></div><p>С чего вы это взяли?<br />Метка Retry находится не внутри блока, это главное.<br /></p><div class="quotebox"><blockquote><p>В первом не понятно зачем после retry снова в нем же делать переход к нему</p></blockquote></div><p>Это я как пример привел - метку кинуть в конец.<br />А там уже сами домыслите.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-07-23T23:03:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85070#p85070</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85069#p85069" />
			<content type="html"><![CDATA[<p>Второй вариант опять будет помещать GoTo внутрь блока. В первом не понятно зачем после retry снова в нем же делать переход к нему.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T22:59:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85069#p85069</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85068#p85068" />
			<content type="html"><![CDATA[<p>Просто GoSub и Goto не может перейти внутрь блока.<br />У вас не код, а какая-то путанница.<br />Я бы сделал примерно так:<br /></p><div class="codebox"><pre><code>a = 1
if a = 1
   GoTo, retry 

retry:
msgbox
GoTo, retry</code></pre></div><p>Либо если не хотите выносить retry, то:</p><div class="codebox"><pre><code>PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
Retry:
if ErrorLevel = 1
   msgbox % ErrorLevel
GoTo retry</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-07-23T22:00:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85068#p85068</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85058#p85058" />
			<content type="html"><![CDATA[<p>Кстати, только что решил эту проблему альтернативным путем. <br /></p><div class="codebox"><pre><code>~3::
IfWinActive, Name
{
  if (lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
  {
    lock_3 = 1
    PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
    if ErrorLevel = 1
      Re_try:
      {
        PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
        if (ErrorLevel = 1 || sell != 1)
        {
          if (mustang = 5 &amp;&amp; sell = 5)
            SendInput  12
            SetTimer, Re_try, On
            ; Задача: Здесь должен быть переход к else if (ErrorLevel =  0 &amp;&amp; sell = 1)
        }
        else if (ErrorLevel =  0 &amp;&amp; sell = 1)
        {
          if (mustang = 5 &amp;&amp; mode = 1)                 ;[mode = 1]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                sleep, 1320
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                Send 7
              sleep, 150
              Send {vk4B}
          }
          if (mustang =0 &amp;&amp; mode = 0 )                ;[mode = 0]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 150
              Send {vk4B}
          }
        }
    }
  }
}
Return

Re_try:
PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
if (ErrorLevel =  0 &amp;&amp; sell = 1)
        {
          if (mustang = 5 &amp;&amp; mode = 1)                 ;[mode = 1]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                sleep, 1320
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                Send 7
              sleep, 150
              Send {vk4B}
          }
          if (mustang =0 &amp;&amp; mode = 0 )                ;[mode = 0]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 150
              Send {vk4B}
          }
        }
SetTimer, Re_try, Off
Return</code></pre></div><p>Скорее всего к крашу приводит ошибка непосредственно в самом AHK, баг в его коде.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T18:01:52Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85058#p85058</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85055#p85055" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>~3::
IfWinActive, Name
{
  if (lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
  {
    lock_3 = 1
    PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
    if ErrorLevel = 1
      Re_try:
      {
        PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
        if (ErrorLevel = 1 || sell != 1)
        {
          if (mustang = 5 &amp;&amp; sell = 5)
            SendInput  12
            Gosub Re_try                                       ; После выполнения этого возвращения идет краш
            ; Задача: Здесь должен быть переход к else if (ErrorLevel =  0 &amp;&amp; sell = 1)
        }
        else if (ErrorLevel =  0 &amp;&amp; sell = 1)
        {
          if (mustang = 5 &amp;&amp; mode = 1)                 ;[mode = 1]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                sleep, 1320
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                Send 7
              sleep, 150
              Send {vk4B}
          }
          if (mustang =0 &amp;&amp; mode = 0 )                ;[mode = 0]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 150
              Send {vk4B}
          }
        }
    }
  }
}
Return</code></pre></div><p>Так более понятнее выглядит о чем я говорю. Попробуйте сделать такой же пример - увидите, что такое краш.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T17:50:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85055#p85055</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85054#p85054" />
			<content type="html"><![CDATA[<p>Переписанный Вами мой пример более удобен для восприятия, однако вопроса это не решает. Только ErrorLevel = 0 и некоторые немаловажные переменные опущены у Вас почему-то. <br />Нужно написать метку перехода после ErrorLevel = 1 на ErrorLevel = 0 или еще раз производить поиск пикселя после выполнения условий ErrorLevel = 1, однако тут возникает какой-то баг, потому что после задания вернуться к метке через GoTo или Gosub скрипт начинает крашиться. <br />Крашить - он зависает вместе с компьютером. Приходится отключать через диспетчер, либо перезапускать компьютер, потому что курсор невероятно долго двигается.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-23T17:40:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85054#p85054</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=85035#p85035" />
			<content type="html"><![CDATA[<p>Что значит &quot;крашит&quot;? Что именно не срабатывает?</p><p>Может так имелось в виду:<br /></p><div class="codebox"><pre><code>~3::
IfWinActive, Name
{
  if (lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
  {
    lock_3 = 1
    PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
    if ErrorLevel = 1
    {
      loop
      {
        PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
        if (ErrorLevel = 1 || sell != 1)
        {
          if (mustang = 5 &amp;&amp; sell = 5)
            SendInput  12
        }
        else if sell = 1
        {
          if (mustang = 5 &amp;&amp; mode = 1)                 ;[mode = 1]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                sleep, 1320
              if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
                Send 7
              sleep, 150
              Send {vk4B}
          }
          else if mode = 0                 ;[mode = 0]
          {
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 20
              Send 7
              sleep, 150
              Send {vk4B}
          }
          break
        }
      }
    }
  }
}
Return
</code></pre></div><p>OFF: Дурацкое слово... КрАшит... Словно хлеб на стол крАшит...</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-07-23T12:09:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=85035#p85035</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=84993#p84993" />
			<content type="html"><![CDATA[<p><strong>Alectric</strong>, одно и тоже. С добавлением continue опять крашит.</p>]]></content>
			<author>
				<name><![CDATA[Странникх]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30605</uri>
			</author>
			<updated>2014-07-22T11:26:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=84993#p84993</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Возврат к метке в коде]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=84992#p84992" />
			<content type="html"><![CDATA[<p>Попробуйте использовать ограниченный цикл вместо метки.(Цикл ограничен с помощью &quot;break&quot; в конце)<br /></p><div class="codebox"><pre><code>~3::
IfWinActive, Name
{
  if (lock_3 = 0 &amp;&amp; shiftkey = 0 &amp;&amp; winkey = 1)
  {
    lock_3 = 1

    PixelSearch,,,  400 , 1070 , 400 , 1070 , 0x1CC3F3, 2, fast
    if ErrorLevel = 1
    loop
    {
      PixelSearch,,,  122 , 122 , 122 , 122 , 0x8D8414, 9, fast
      if (ErrorLevel = 1 || sell != 1)
      {
        if (mustang = 5 &amp;&amp; sell = 5)
        {
          SendInput  12
        }
        continue
      }
      if (ErrorLevel = 0 &amp;&amp; sell = 1)
      {
      ;Loop 1
         ;{


      ;; MODE    1
        if (mustang = 5 &amp;&amp; mode = 1)                 ;[mode = 1]
        {
            Send 7
            sleep, 20
            Send 7
            sleep, 20
            Send 7
            sleep, 20
            Send 7
            if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
              sleep, 1320
            if (GetKeyState(&quot;XButton1&quot;,&quot;P&quot;)=0)
              Send 7
            sleep, 150
            Send {vk0x4B}
        }
      ;; MODE 0
        if (mustang = 5 &amp;&amp; mode = 0)                 ;[mode = 0]
        {
            Send 7
            sleep, 20
            Send 7
            sleep, 20
            Send 7
            sleep, 20
            Send 7
            sleep, 20
            Send 7
            sleep, 150
            Send {vk0x4B}
        }
        ;}
      }
      break
    }
  }
}
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-07-22T10:59:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=84992#p84992</id>
		</entry>
</feed>
