<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=7298</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7298&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре».]]></description>
		<lastBuildDate>Sun, 15 Jul 2012 20:28:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61588#p61588</link>
			<description><![CDATA[<p>Прошу прощения за длительное отсутствие - по работе необходимо было уехать из города,<br />возможности ответить не было <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> .<br />1.Дело в том, что AHK_L&nbsp; <br />А). у меня нет в наличии<br />Б). я, как вы наверное догадались совсем новичок в написании скриптов (повторяюсь) и только-только начал немного (с помощью Вашего форума,конечно) чего-то там ОТДАЛЕННО соображать в этом, и не успев толком разобраться с AHK перепрыгивать на AHK_L&nbsp; , боюсь у меня возникнет СЛИШКОМ много вопросов , а читать англоязычные ссылки по мануалу мне не совсем комфортно, учитывая тот фактор что они не совсем корректно переводятся переводчиком,и приходится чего-то там додумывать . К стати вопрос: в чем выигрывает AHK_L ?? Если только более красивым интерфейсом, то это не основание для перемен (ИМХО).<br />2.Еще раз&nbsp; извиняюсь, но по найденным и прочитанным мною ссылкам я ,к сожалению, толком так и не разобрался в командах &quot;mouse_event&quot; и тем более в значениях флагов <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> , экспериментальным путем определил только то, что при изменении значения флага( на 2 или 4) никаких видимых изменений НЕ происходит! , так-же как и при удалении этого значения совсем. Потому и &quot;переделал&quot;.<br /> Примечательно то, что скрипт работает, и (пока) непонятным мне способом выполняет требуемую от него задачу!<br />3.Двойной клик добавил, но сомневаюсь что добавил правильно, и корректно, потому и не выкладываю.<br />P.S.Если кто-то со мной не согласен, имеет другое мнение или варианты, буду рад&nbsp; ознакомится. Но прошу не пинайте жестко, к сожалению гениями рождаются не все <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> . Но при определенном желании и настойчивости можно приблизится к нему (ИМХО).</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sun, 15 Jul 2012 20:28:45 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61588#p61588</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61247#p61247</link>
			<description><![CDATA[<p>Извините за задержку, не заметил последнего ответа.<br /></p><div class="quotebox"><cite>Borodas пишет:</cite><blockquote><p>Немного не понял цели Ваших вопросов , если Вы хотите доказать лишний раз мне и окружающим что я НЕ программист; то я должен Вам ответственно заявить (если Вам не надоело это читать) НЕТ я только пытаюсь<br />развиваться в этом направлении, я новичок , я ... и.т.д.</p></blockquote></div><p>Это было указание на то, что вам нужно более подробно изучить функцию mouse_event.<br /></p><div class="quotebox"><cite>Borodas пишет:</cite><blockquote><p>Если Вы хотите помочь буду ВЕСЬМА признателен за ЛЮБУЮ оказанную помощь.<br />1. Я ПЫТАЮСЬ писать на AHK (не AHK_L) .<br />2. Переделал, так лучше?</p></blockquote></div><p>1. Зря, переходите на AHK_L, обычной версией тут никто не пользуется- она сильно устарела.<br />2. Нет, хуже. Ничего переделывать не нужно, нужно понять почему именно эти данные передаются в функцию. Чуть раньше <strong>Grey</strong> дал ссылку на <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260%28v=vs.85%29.aspx">MSDN</a>. Там написано:<br /></p><div class="quotebox"><cite>MSDN пишет:</cite><blockquote><p>MOUSEEVENTF_MOVE&nbsp; &nbsp;Movement occurred.<br />0x0001</p></blockquote></div><p>Там же указаны и другие возможные флаги, например:<br /></p><div class="quotebox"><cite>MSDN пишет:</cite><blockquote><p>MOUSEEVENTF_LEFTDOWN&nbsp; &nbsp; &nbsp;The left button is down.<br />0x0002<br />MOUSEEVENTF_LEFTUP&nbsp; &nbsp; &nbsp;The left button is up.<br />0x0004</p></blockquote></div><p>как с их помощью двойной клик составить, я думаю, вы догадались.</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Wed, 27 Jun 2012 18:48:41 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61247#p61247</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61199#p61199</link>
			<description><![CDATA[<div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><p><strong>Borodas</strong>, если вы пишите на AHK_L, то последний параметр должен иметь тип указателя(&quot;ptr&quot;).<br />DllCall(&quot;mouse_event&quot;, UInt, <strong>0x0001</strong>, Int, 0 , Int, 250 , UInt, 0 , Int, 0)<br />Почему там именно единица? Что будет, если изменить на двойку или четвёрку?</p></blockquote></div><p>Немного не понял цели Ваших вопросов , если Вы хотите доказать лишний раз мне и окружающим что я НЕ программист; то я должен Вам ответственно заявить (если Вам не надоело это читать) НЕТ я только пытаюсь<br />развиваться в этом направлении, я новичок , я ... и.т.д.<br /> Если Вы хотите помочь буду ВЕСЬМА признателен за ЛЮБУЮ оказанную помощь.<br />1. Я ПЫТАЮСЬ писать на AHK (не AHK_L) .<br />2. Переделал, так лучше?<br />&nbsp; &nbsp;</p><p>Вчера изучал Ваш форум успел прочитать к сожалению всего 6 страниц&nbsp; с темами и 2 страницы в ветке&nbsp; <br /> &quot;Коллекция скриптов и идей » AutoHotkey&quot;, и честно говоря, был поражен тем колоссальным трудом,<br />и той оперативностью с которой работают те процентов 5&nbsp; от общей численности людей зарегистрированных на этом форуме. Жаль что у Вас на форуме нет&nbsp; кнопочки &quot;спасибо&quot; .</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Mon, 25 Jun 2012 12:03:10 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61199#p61199</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61166#p61166</link>
			<description><![CDATA[<p><strong>Borodas</strong>, если вы пишите на AHK_L, то последний параметр должен иметь тип указателя(&quot;ptr&quot;).<br /></p><div class="quotebox"><cite>Borodas пишет:</cite><blockquote><p>И еще один минус в том что нет двойного клика</p></blockquote></div><p>DllCall(&quot;mouse_event&quot;, UInt, <strong>0x0001</strong>, Int, 0 , Int, 250 , UInt, 0 , Int, 0)<br />Почему там именно единица? Что будет, если изменить на двойку или четвёрку?</p>]]></description>
			<author><![CDATA[null@example.com (Александр_)]]></author>
			<pubDate>Sun, 24 Jun 2012 11:32:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61166#p61166</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61164#p61164</link>
			<description><![CDATA[<p>Вот почитал, поискал и наткнулся на написанный Вами Grey скрипт: <a href="http://forum.script-coding.com/viewtopic.php?id=6076">http://forum.script-coding.com/viewtopic.php?id=6076</a><br />Цитирую:<br /></p><div class="codebox"><pre><code>LButton::DllCall(&quot;mouse_event&quot;, UInt, 0x0001 ; вариант второй
                                 , Int, 0
                                 , Int, 250
                                 , UInt, 0
                                 , Int, 0)
LButton Up::DllCall(&quot;mouse_event&quot;, UInt, 0x0001
                                 , Int, 0
                                 , Int, -250
                                 , UInt, 0
                                 , Int, 0)</code></pre></div><p>При небольшой переделке у меня получилось вот чего:<br /></p><div class="codebox"><pre><code>sc11D::
    Send {sc17} ; i/ш
    Sleep 100
    DllCall(&quot;mouse_event&quot;, UInt
                                , Int, 0
                                , Int, 250
                                , UInt, 0
                                , Int, 0)
    DllCall(&quot;mouse_event&quot;, UInt
                                 , Int, 0
                                 , Int, -250
                                 , UInt, 0
                                 , Int, 0)
    Sleep 100
    Send {sc17} ; i/ш
    Return</code></pre></div><p>В полученном таким образом коде рюкзак открывается (это есть +), курсор остается стоять на месте(это тоже +), минусом является тот факт что сразу после респауна (рождения тела игрока) необходимо один раз открыть рюкзак и навести курсор на аптеку (на том месте он и останется стоять до тех пор пока игрока не &quot;убьют&quot; ) НО это можно терпеть! И еще один минус в том что нет двойного клика (т.е. курсор-то стоит на аптеке но не использует ее). Не уверен что сделал все правильно но это работает <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" />&nbsp; . Остается добавить в скрипт двойной клик.</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sun, 24 Jun 2012 10:49:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61164#p61164</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61161#p61161</link>
			<description><![CDATA[<div class="quotebox"><cite>Grey пишет:</cite><blockquote><p>Если <em>Ваш рюкзак</em> отображается как D3D часть игры, то попасть на него стандартной коммандой для мыши из функционала АХК думаю будет проблематично. .</p></blockquote></div><p>Прискорбно. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br />Чувствую решение придет не скоро. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br /></p><div class="quotebox"><cite>Grey пишет:</cite><blockquote><p>Есть вариант задействовать WinAPI функцию mouse_event, примеров использования довольно таки много, стоит вбить в фильтр поиска строку вида - &quot;DllCall(&quot;mouse_event&quot;, &quot;.</p></blockquote></div><p><img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> Это для меня ещё не знакомо.&nbsp; <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />&nbsp; Иду искать. <br />P.S. Подобный макрос написанный для игровой мыши работает, но хотелось-бы найти более уникальное и стабильное решение (ведь не у всех есть возможность приобрести такую мышь).Да и работа макросов написанных для нее оставляет желать лучшего.</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sun, 24 Jun 2012 08:45:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61161#p61161</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61159#p61159</link>
			<description><![CDATA[<p>На пример в Counter Strike: Source пробую такой <em>тестовый</em> код:</p><div class="codebox"><pre><code>CoordMode, Mouse
RControl::MouseMove, 50, 50,, R</code></pre></div><p>При наличии консоли на экране, т.е. DirectDraw режим - всё работает корректно, курсор сдвигается относительно своего положения в указанные координаты, стоит только убрать консоль, т.е. переключиться в режим Derict3D, то курсор <em>упирается</em> в пол, либо в потолок. Вышел из полноэкранного режима, запустил в оконном, чтобы поверх приложения игры отрисовывался <em>туллтип</em> с координатами курсора (запустил ещё код). Так явным образом видно, что как-бы не двигать курсор, его координаты всегда равны середине экрана (при нажатии хоткея сбиваются, но очень быстро возвращаются на исходные). Если <em>Ваш рюкзак</em> отображается как D3D часть игры, то попасть на него стандартной коммандой для мыши из функционала АХК думаю будет проблематично. Есть вариант задействовать WinAPI функцию <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx">mouse_event</a>, примеров использования довольно таки много, стоит <em>вбить</em> в фильтр поиска строку вида - &quot;DllCall(&quot;mouse_event&quot;, &quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Sun, 24 Jun 2012 08:01:09 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61159#p61159</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61158#p61158</link>
			<description><![CDATA[<p>Спасибо! ЕСТЬ сдвиг!<br />Клавиша {I} стала нажиматься!НО!<br />Теперь проблема с курсором, он ведет себя как-то не стабильно, его перемещает то в верхний левый угол(ближе к нулю координат),то в нижний левый угол. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br />Что-то неверно с координатами?</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sun, 24 Jun 2012 07:26:05 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61158#p61158</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61155#p61155</link>
			<description><![CDATA[<p>Попробуйте вместо именного названия <em>хоткея</em> (RControl) прописать скан-код этой клавиши:</p><div class="codebox"><pre><code>sc11D::
   Send, {sc17} ; i/ш
   Sleep, 100
   ...</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Grey)]]></author>
			<pubDate>Sun, 24 Jun 2012 07:00:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61155#p61155</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61153#p61153</link>
			<description><![CDATA[<p>Уважаемый creature.ws.<br />Я ОЧЕНЬ БЛАГОДАРЕН ВАМ&nbsp; за участие в решении моих проблем, НО!<br />К сожалению проблема не решена <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> . Подобный скрипт я пробовал, разница лишь в строке:<br /></p><div class="codebox"><pre><code>MouseClick, left,  84,  287, 2</code></pre></div><p>Я не ставил 2 после координат.<br />Суть в том, что в игре вот именно значение <br /></p><div class="codebox"><pre><code>Send {i}</code></pre></div><p>как раз и НЕ срабатывает! Как я и писал выше <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> .<br />То есть&nbsp; НЕТУ нажатия на кнопку I !!!<br />Что-то не так. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />&nbsp; &nbsp;Ковыряю дальше ,не знаю получится-ли чего -нибудь.&nbsp; <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sun, 24 Jun 2012 06:33:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61153#p61153</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61148#p61148</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Что не так???</p></blockquote></div><div class="codebox"><pre><code>RControl::
    Send {i}
    Sleep 100
    MouseClick, left,  84,  287, 2
    Sleep 100
    Send {i}
    Return</code></pre></div><p>Правильный ответ на ваши вопросы — продолжайте читать справку и разбирать существующие примеры скриптов.</p>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Sun, 24 Jun 2012 00:49:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61148#p61148</guid>
		</item>
		<item>
			<title><![CDATA[AHK: скрипт на нажатие кнопок клавиатуры, и перемещение мыши в игре]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=61143#p61143</link>
			<description><![CDATA[<p>Доброго времени суток Всем!<br />Попробовал написать свой первый скрипт , и неудачно.<br />Пытался решить вопрос самостоятельно используя документацию по программе AHK <br />эту: <a href="http://script-coding.com/AutoHotkey/Hotkeys.html">http://script-coding.com/AutoHotkey/Hotkeys.html</a><br />и вот эту:<a href="http://script-coding.com/AutoHotkey/Macro.html">http://script-coding.com/AutoHotkey/Macro.html</a><br />Но там описано применение горячих клавиш типа: Ctrl, Alt и т.д., символов, комбинации клавиш типа Ctrl+ Alt+S и т.д. <br /> Но к сожалению я не нашел там каким образом можно задействовать &quot;чистые&quot; клавиши букв т.е. не комбинацию.<br /> Теперь суть :<br />&nbsp; &nbsp;В игре необходимо нажать на клавишу {I} (открывается рюкзак)<br />&nbsp; &nbsp;Далее переместить курсор в указанные координаты и сделать двойной клик (т.е. использовать)<br />&nbsp; &nbsp;Далее снова закрыть рюкзак т.е. снова нажать на клавишу I<br />&nbsp; &nbsp;Все!&nbsp; &nbsp;(Думал все просто!)<br />Горячей(пусковой) клавишей назначал RControl.(т.к. опять таки не нашел как можно задействовать кнопку на колесике мышки). <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br />Сначала для записи попробовал использовал AutoScriptWriter II (думал запишу, и удалю все лишнее&nbsp; <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" />&nbsp; ! НО не тут-то было!)<br />И вот чего у меня получилось :<br /></p><div class="codebox"><pre><code>WinWait, , 
IfWinNotActive, , , WinActivate, , 
WinWaitActive, , 
MouseClick, left,  671,  753
Sleep, 100
{CTRLUP}
WinWait, Диспетчер задач Windows, 
IfWinNotActive, Диспетчер задач Windows, , WinActivate, Диспетчер задач Windows, 
WinWaitActive, Диспетчер задач Windows, 
Send, {ALTDOWN}{CTRLDOWN}{ALTUP}{CTRLUP}.{ALTDOWN}{CTRLDOWN}{ALTUP}{CTRLUP}
Sleep, 100</code></pre></div><p>В коде выше я не увидел эмуляции нажатия на&nbsp; клавишу Ш (или I).Часть кода:<br /></p><div class="codebox"><pre><code>{CTRLUP}
WinWait, Диспетчер задач Windows, 
IfWinNotActive, Диспетчер задач Windows, , WinActivate, Диспетчер задач Windows, 
WinWaitActive, Диспетчер задач Windows, 
Send, {ALTDOWN}{CTRLDOWN}{ALTUP}{CTRLUP}.{ALTDOWN}{CTRLDOWN}{ALTUP}{CTRLUP}
Sleep, 100</code></pre></div><p>Эту часть я удалял т.к. жал её для выхода из экрана игры на раб.стол. (что-бы остановить запись).<br />К стати вопрос: возможно-ли запустить AutoScriptWriter II непосредственно в окне самой игры, и записать там скрипт ???<br />Переделывал и остальную часть кода, пробовал по разному, но результат один - не работает! Рюкзак не открывается вообще! Курсор смещается, но проконтролировать правильно-ли нет возможности.<br /> Далее попробовал написать в ручную вот чего получилось:<br /></p><div class="codebox"><pre><code>RControl::

SendKeys: 
    Send {i} {Raw}
    IfWinNotActive, , , WinActivate, ,  
    Sleep 100
    MouseClick, left,  84,  287
    MouseClick, left,  84,  287
    Sleep 100
    Send {i}{Raw}
    Return</code></pre></div><p>Что не так???<br />P.S. Координаты курсора отличаются по значению почему-то. В первом случае записывал AutoScriptWriter II<br />Во втором : входил в игру, перемещал курсор в необходимое место, клеил на монитор кусок бумажки,<br />выходил из игры, и с помощью проги Auto IT3 WindowSpy вычислял координаты курсора стоящего под наклейкой.<br />Буду весьма признателен за оказанную помощь.</p>]]></description>
			<author><![CDATA[null@example.com (Borodas)]]></author>
			<pubDate>Sat, 23 Jun 2012 22:15:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=61143#p61143</guid>
		</item>
	</channel>
</rss>
