<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8765&amp;type=atom" />
	<updated>2013-10-21T10:56:32Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8765</id>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76260#p76260" />
			<content type="html"><![CDATA[<p>Супер! Спасибо, Indomito. Проверю код сегодня вечером, но, думаю, там все ок.</p><div class="codebox"><pre><code>не за что - обращайся её, правда я не очень часто посещаю этот форум(у меня возник вопрос и я получил ответ, а когда я его получил увидел твой вопрос и ответил)</code></pre></div><p>Ты ответил даже быстрее, чем я вспомнил про свой пост <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />. </p><p>Была лишняя скобочка в 47-48 строке.</p>]]></content>
			<author>
				<name><![CDATA[goodbyamerika]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30961</uri>
			</author>
			<updated>2013-10-21T10:56:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76260#p76260</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76135#p76135" />
			<content type="html"><![CDATA[<p>Это кажется не удержание, а одновременное нажатие. <br />Проще написать </p><div class="codebox"><pre><code>Hotkey, LCtrl &amp; F, lCtrlF, On
return

lCtrlF:
 ToolTip  Нажали LCtrl + F
return
</code></pre></div><p>Так хоть можно отключить обработку Hotkey</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-18T21:21:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76135#p76135</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76133#p76133" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Сначала он ждет когда нажмут клавишу (допустим ф), и только в случае если следующая клавиша будет левая кнопка мыши, тогда он срабатывает.</p></blockquote></div><div class="codebox"><pre><code>
#InstallKeybdHook
  
#IF (A_PriorKey = &quot;F&quot;)
LButton:: ToolTip % A_PriorKey
#IF</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-10-18T20:52:25Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76133#p76133</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76131#p76131" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>goodbyamerika пишет:</cite><blockquote><p>Вчера располагал крайне малым запасом времени для проверки скрипта, но тем не менее его удалось запустить и все работало как надо, спасибо Indomito.</p></blockquote></div><p> не зачто - обращайся её, правда я не очень часто посещаю этот форум(у меня возник вопрос и я получил ответ, а когда я его получил увидел твой вопрос и ответил)</p><div class="quotebox"><blockquote><p>Но возникла одна неприятная штучка: неудобно использовать такую клавишу. <br />Как заставить скрипт использовать бинд не по одной клавише, а так:<br />Сначала он ждет когда нажмут клавишу (допустим ф), и только в случае если следующая клавиша будет левая кнопка мыши, тогда он срабатывает.</p></blockquote></div><p> </p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Приблизительно так, извини что такой большой код, но так будет проще</div><div class="fancy_spoiler"><div class="codebox"><pre><code>subStart:
 fLCtrl := false
 cSleep := 25
 gosub lXon
return

subEnd:
  gosub lXoff 
return

lXon:
    Hotkey, LCtrl, subLCtrl, On
return
  
lXoff:
    Hotkey, LCtrl, subLCtrl, Off
return

#UseHook, On
  
subLCtrl:
  while (GetKeyState(&quot;LCtrl&quot;, &quot;P&quot;))
    {
      vKey := &quot;LCtrl&quot;
      if (GetKeyState(&quot;F1&quot;, &quot;P&quot;))
        { 
         if (fLCtrl)
             {
              fLCtrl := false ; Выключить обработку
              Break  ; при следующем нажатии, пока выдаём &quot;Ctrl&quot;
             }  
            else
             {
              fLCtrl := true ; Включить обработку
              Break ; при следующем нажатии, пока выдаём &quot;Ctrl&quot;
             }
          }   
       if (GetKeyState(&quot;F2&quot;, &quot;P&quot;) &amp;&amp; fLCtrl)
             {
              vKey := &quot;F10&quot; ;При условии зажатого Ctrl и нажатого и отжатого F2 +  флаг fLCtrl=true
              Break ;выдача &quot;F10&quot;
             }
            else
              Break ; выдаём &quot;Ctrl&quot;
        }
    }
  Send, {%vKey% Down}
   sleep %cSleep%
  Send, {%vKey% Up}
return
#UseHook, Off</code></pre></div></div></div><p> Не сделал обращение к подпрограмме <strong>subEnd</strong> - оставил реализацию для тебя.</p><p>Надеюсь, что не очень сложно и учти&nbsp; - я код не проверял. <br />Да, ещё, определение клавиш <strong>&quot;LCtrl&quot;, &quot;F1&quot;, &quot;F2&quot; и &quot;F10&quot;</strong> можно сделать через переменные/константы. </p><p>У меня в одном скрипте было написано так - <strong>HotKey %bfHotK%,%vLabel%, %cOnHK% UseErrorLevel&nbsp; ; Включение HotKey</strong>&nbsp; <br />Я не стал тут так писать, что бы тебя не запутать</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-18T18:51:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76131#p76131</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76112#p76112" />
			<content type="html"><![CDATA[<p>Вчера располагал крайне малым запасом времени для проверки скрипта, но тем не менее его удалось запустить и все работало как надо, спасибо Indomito. Но возникла одна неприятная штучка: неудобно использовать такую клавишу. </p><p>Как заставить скрипт использовать бинд не по одной клавише, а так:</p><p>Сначала он ждет когда нажмут клавишу (допустим ф), и только в случае если следующая клавиша будет левая кнопка мыши, тогда он срабатывает.</p>]]></content>
			<author>
				<name><![CDATA[goodbyamerika]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30961</uri>
			</author>
			<updated>2013-10-18T10:16:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76112#p76112</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76096#p76096" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>goodbyamerika пишет:</cite><blockquote><p>Проверил свое предположение в текстовом редакторе - вроде работают обе клавиши. Посмотрю вечером, как игра отреагирует на это все.</p></blockquote></div><p> работать должно, если я где то не опечатался <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /> </p><div class="quotebox"><blockquote><p>добавить Hotkey,&nbsp; sc1e, lSequence2, Off.<br />Ведь lSequence это всего лишь переменная?</p></blockquote></div><p> <strong>lSequence </strong>не переменная, а метка,&nbsp; разница в том, что при команде <strong>Hotkey</strong> метка должна быть, а переменная не обязательно, так как переменные объявляются динамически, т.е. их можно не объявлять заранее при <strong>a := b</strong>&nbsp; переменной <strong>b</strong> может и не существовать и эквивалентом&nbsp; <strong>a := b</strong> будет <strong>а := 0</strong> или&nbsp; <strong>а := &quot;&quot;</strong> и тд.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-17T13:01:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76096#p76096</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76094#p76094" />
			<content type="html"><![CDATA[<p>Проверил свое предположение в текстовом редакторе - вроде работают обе клавиши. Посмотрю вечером, как игра отреагирует на это все.</p>]]></content>
			<author>
				<name><![CDATA[goodbyamerika]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30961</uri>
			</author>
			<updated>2013-10-17T12:32:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76094#p76094</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76093#p76093" />
			<content type="html"><![CDATA[<p>Спасибо за корректировку кода, сразу бы я точно не сообразил. Теперь становится понятно, что функция WinActive берется от стринговой переменной, которой мы уже присвоили название окна. Другой вопрос, а если я захочу вставить при тех же услових старта новую клавишу со своей комбинацией, то можно, например, здесь </p><div class="codebox"><pre><code>LWin &amp; F9::
    Hotkey,  sc1e,                  lSequence,         On ;a
  SetTimer lTimerTest, 50</code></pre></div><p> вставить еще одно условие, допустим для клавиши sc22:<br /></p><div class="codebox"><pre><code>Hotkey,  sc22,                  lSequence2,         On ;</code></pre></div><p> Потом уже в секции последовательных посылок вставить еще одно lSequence2 со своей комбинацией:<br /></p><div class="codebox"><pre><code>#UseHook, On
lSequence:
;q + LButton 
 Send, {sc10 Down}
  Sleep %vDelay1%
 Send, {sc10 Up}
 gosub lClkMouse
 ...
lSequence2:
;w + LButton 
 Send, {sc11 Down}
  Sleep %vDelay1%
 Send, {sc11 Up}
 gosub lClkMouse</code></pre></div><p> Ну, и чуть ниже в </p><div class="codebox"><pre><code>lTimerTest:
 if !((WinActive(vTitleGame) &amp;&amp; vMyScript &amp;&amp; vTitleGameTest))
       {
          Hotkey,  sc1e,                  lSequence,         Off
          SetTimer lTimerTest, off
          vMyScript := false</code></pre></div><p> добавить Hotkey,&nbsp; sc1e, lSequence2, Off.<br />Ведь lSequence это всего лишь переменная?</p>]]></content>
			<author>
				<name><![CDATA[goodbyamerika]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30961</uri>
			</author>
			<updated>2013-10-17T12:16:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76093#p76093</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76083#p76083" />
			<content type="html"><![CDATA[<p>Еще такой вопрос как в это цикл правильно поставить команду PixelGetColor, что бы при нажатии на vk28 цикл начинался затем нажималась клавиша sc23 и была нажата пока не будет найден нужный пиксель, после этого она отпускалась и происходило то же действие со следующей кнопкой. Завершение цикла в любой момент при нажатии на vk28.</p><div class="codebox"><pre><code>
vk28::
    vk28 := !vk28
    SetTimer, lLoop, -1
    return
    
sc22::
   Send, {sc22 down}
   KeyWait, % A_ThisHotkey
   Send, {sc22 up}
Return

sc23::
   Send, {sc23 down}
   KeyWait, % A_ThisHotkey
   Send, {sc23 up}
Return

lLoop:
   While vk28
  {
   #UseHook, On  
   Send, {sc23 down}
   PixelGetColor, Color, 946, 591, fast
   if (Color = 0x3c8c5c)
   Send, {sc23 up}
   sleep 10
   Send, {sc22 down}
   PixelGetColor, Color, 946, 606, fast 
   if (Color = 0x3c8c5c)
   Send, {sc22 up}
   #UseHook, Off
  }
   
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[afik08]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30873</uri>
			</author>
			<updated>2013-10-17T08:41:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76083#p76083</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76082#p76082" />
			<content type="html"><![CDATA[<p><strong><a href="http://forum.script-coding.com/profile.php?id=30961">goodbyamerika</a></strong> нашёл опечатку, т.е. ошибку, пока писал скрипт.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Было</div><div class="fancy_spoiler"><div class="codebox"><pre><code>; Завершение скрипта
lQuit:
LWin &amp; F12::
sleep 1000
gosub lTimerTest
ExitApp
return ; этот return не обязателен

#If (vTitleGameTest &amp;&amp; WinActive(TitleMyGame))
SetTitleMatchMode, 2</code></pre></div></div></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Надо</div><div class="fancy_spoiler"><div class="codebox"><pre><code>; Завершение скрипта
lQuit:
LWin &amp; F12::
sleep 1000
gosub lTimerTest
ExitApp ; Убрал return


#If (vTitleGameTest &amp;&amp; WinActive(vTitleGame)) ;Была TitleMyGame, а надо vTitleGame
SetTitleMatchMode, 2</code></pre></div></div></div><p>Пишу, так как я думаю, что сам не сразу найдёшь.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-17T08:17:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76082#p76082</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76076#p76076" />
			<content type="html"><![CDATA[<p>это я не суда случайно))))</p>]]></content>
			<author>
				<name><![CDATA[afik08]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30873</uri>
			</author>
			<updated>2013-10-17T07:12:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76076#p76076</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76075#p76075" />
			<content type="html"><![CDATA[<p><strong><a href="http://forum.script-coding.com/profile.php?id=30873">afik08</a></strong> удалил <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-17T07:04:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76075#p76075</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76074#p76074" />
			<content type="html"><![CDATA[<p>Спасибо вроде бы пока всё работает)))</p>]]></content>
			<author>
				<name><![CDATA[afik08]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30873</uri>
			</author>
			<updated>2013-10-17T07:02:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76074#p76074</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76073#p76073" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>goodbyamerika пишет:</cite><blockquote><p>Бывают же такие Люди! Огромное спасибо, Indomito!</p></blockquote></div><p> не за что сам писал нечто подобное, но с таймерами - просто машина в игре ехала не равномерно <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><div class="quotebox"><blockquote><p>Такой еще вопрос: могу я воспользоваться функцией генерации случайного числа Random, обозначив границы в пределах 3..10 (или 10-30) и рассчитывать таким образом vDelay1, vDelay2, vDelay3 между каждым обращением к клавише запускающей последовательность?</p></blockquote></div><p> можно, а нужно? <br />Надо просто посмотреть работу скрипта в действии и сравнить, реально или же нет, он работает, если нет, то подобрать задержки более близкие к обычным нажатиям - и всё.</p><p>Удачи. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-17T06:39:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76073#p76073</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: Эмуляция нажатия клавиш фиксируется приложением(Игрой)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=76072#p76072" />
			<content type="html"><![CDATA[<p>Бывают же такие Люди! Огромное спасибо, Indomito! <br />К сожалению, возможности проверить коды в действии пока нет, но как появится - отпишусь. </p><p>Такой еще вопрос: могу я воспользоваться функцией генерации случайного числа Random, обозначив границы в пределах 3..10 (или 10-30) и рассчитывать таким образом vDelay1, vDelay2, vDelay3 между каждым обращением к клавише запускающей последовательность?</p><p>Возможно, это излишне. Но, если представить на месте игрока рекордсмена по скорости печати с молниеносной реакцией, то вполне возможно он будет выдавать такую скорость нажатий, а если добавить рандом в задержках между нажатиями, то станем еще ближе к реализму.</p><p>П.С.: занимаюсь достаточно давно цифровой обработкой сигналов (наукой и реализацией), если можно будет чем помочь, то обязательно помогу. :-)</p>]]></content>
			<author>
				<name><![CDATA[goodbyamerika]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30961</uri>
			</author>
			<updated>2013-10-17T06:20:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=76072#p76072</id>
		</entry>
</feed>
