<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Перемещения мыши в игре геймпадом [Решено]]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=10256</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10256&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Перемещения мыши в игре геймпадом [Решено]».]]></description>
		<lastBuildDate>Tue, 17 Feb 2015 06:44:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=91624#p91624</link>
			<description><![CDATA[<p>Совершенно случайно наткнулся вот на такую <a href="http://habrahabr.ru/post/214955/">информацию</a>:<br /></p><div class="quotebox"><blockquote><p>Координаты мыши<br />Функция mouse_event имеет специфическую особенность: координаты мыши задаются в mickey, а не в пикселях. Перерасчет mickey в пиксели (и обратно) зависит от разрешения основного используемого монитора. (0,0) соответствует левому верхнему углу монитора, а (65535, 65535) нижнему правому, что дает формулы для пересчета mickey в пиксели и обратно: mickey_point = pixel_point * (65536, 65536) / screen_size и pixel_point = mickey_point * screen_size / (65536, 65536).</p></blockquote></div><p>Нигде такого не встречал просто, вот и стало интересно - это правда? Попробовать смогу только вечером, но почему-то мне кажется что это справедливо. <br />Замечал, что при быстром перемещении курсора есть подергивания, то есть в определенный момент времени значение перемещений вычисляется не корректно и курсор на доли секунды останавливается...</p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Tue, 17 Feb 2015 06:44:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=91624#p91624</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90229#p90229</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Добавление &quot;SendMessage,0x06,1,,,%window%&quot; перед каждым &quot;ControlSend&quot; не решает проблемы... Может я что-то недоглядел в той теме?</p></blockquote></div><p>Для танков отправка клавиатурных клавиш прокатила, чему я был несказанно рад в свое время. Для отправки нажатий кнопок мыши, и колесика другое сообщение:<br /></p><div class="codebox"><pre><code>SendMessage, 0x201,,,, WoT Client ;нажать ЛКМ
SendMessage, 0x202,,,, WoT Client ; отпустить ЛКМ
SendMessage, 0x204, 1,,, WoT Client ;нажать ПКМ
SendMessage, 0x205, 1,,, WoT Client ;отпустить ПКМ</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Fri, 09 Jan 2015 07:25:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90229#p90229</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90206#p90206</link>
			<description><![CDATA[<p>Добавление &quot;SendMessage,0x06,1,,,%window%&quot; перед каждым &quot;ControlSend&quot; не решает проблемы... Может я что-то недоглядел в той теме?</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 08 Jan 2015 17:18:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90206#p90206</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90186#p90186</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Тестировал с блокнотом и несколькими простенькими играми. В блокнот отправляется в игры почему-то нет...<br />Мышь только в активном, про нее еще не думал, сначала с кнопками разобраться нужно.</p></blockquote></div><p>Тогда вот Вам <a href="http://forum.script-coding.com/viewtopic.php?id=9558">ссылка</a> - не наступайте на мои грабли <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Thu, 08 Jan 2015 11:35:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90186#p90186</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90183#p90183</link>
			<description><![CDATA[<p>Тестировал с блокнотом и несколькими простенькими играми. В блокнот отправляется в игры почему-то нет...<br />Мышь только в активном, про нее еще не думал, сначала с кнопками разобраться нужно.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 08 Jan 2015 11:18:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90183#p90183</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90176#p90176</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Добавил возможность посылать нажатия в неактивное окно.</p><p>...</p><p><a href="http://forum.script-coding.com/viewtopic.php?pid=89818#p89818">Добавил отправку по названию окна и по классу окна.</a></p></blockquote></div><p>С чем тестировали? Мышь в неактивном окне работает?</p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Thu, 08 Jan 2015 10:24:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90176#p90176</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90171#p90171</link>
			<description><![CDATA[<p>Добавил возможность посылать нажатия в неактивное окно.</p><p>...</p><p><a href="http://forum.script-coding.com/viewtopic.php?pid=89818#p89818">Добавил отправку по названию окна и по классу окна.</a></p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Thu, 08 Jan 2015 09:31:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90171#p90171</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89820#p89820</link>
			<description><![CDATA[<div class="quotebox"><cite>kharlashkin пишет:</cite><blockquote><p>На картинке видно DualShock, если ли он в наличии у Вас?</p></blockquote></div><p>Для него собственно и делал.</p><p>Интерфейс также подойдет и для других, кроме тех у которых есть оси V и U, и у которых более 12-и кнопок.<br />Там индикация на нажатия кнопок и осей в настройках, и если джойстиков несколько настройки сохраняются отдельно.</p><br /><p>...</p><p>Подправил несколько мелочей в коде выше.</p><p>...</p><p>Устранил ошибку загрузки настроек.<br />...</p><p>Еще раз устранил туже ошибку только по другому... Теперь уж наверняка.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sun, 28 Dec 2014 13:53:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89820#p89820</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89819#p89819</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Наконец-то закончил оболочку.<br />Делюсь, опять же.</p><p>С картинкой интерфейс получше выглядит.</p></blockquote></div><p>Я картинку тоже хотел приложить (как у меня кнопки переназначены), но правильные оригиналы на другом ПК, к которому доступ будет только в понедельник, а копии выложенные на <a href="http://res-mods.ru/">res_mods</a>, пока не одобрены тамошними модераторами.</p><p>В будущем тоже хотел GUI прикрутить, пока времени нет разобраться катастрофически. На картинке видно DualShock, если ли он в наличии у Вас?</p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Sun, 28 Dec 2014 13:34:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89819#p89819</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89818#p89818</link>
			<description><![CDATA[<p>Наконец-то закончил оболочку.<br />Делюсь, опять же.</p><p>Настройки сохраняются в реестре, путь сохранения в переменной &quot;Settingspath&quot;.<br /></p><div class="codebox"><pre><code>#if
#SingleInstance,Force
AutoTrim,Off
CoordMode,Mouse,Screen
CoordMode,ToolTip
CoordMode,Pixel
Menu,Tray,UseErrorLevel
process,priority,,high
;SendMode,input
SetBatchLines,-1
SetControlDelay,0
SetKeyDelay,0
SetTitleMatchMode,2
SetWinDelay,20
SetWorkingDir,%A_ScriptDir%
StringCaseSense,On
DetectHiddenWindows,On

key:={&quot;&quot;:&quot;Нет&quot;,&quot;vk01&quot;:&quot;LButton&quot;,&quot;vk02&quot;:&quot;RButton&quot;,&quot;vk04&quot;:&quot;MButton&quot;,&quot;vk05&quot;:&quot;X1Button&quot;,&quot;vk06&quot;:&quot;X2Button&quot;,&quot;vk08&quot;:&quot;BS&quot;,&quot;vk09&quot;:&quot;TAB&quot;,&quot;vk0D&quot;:&quot;Enter&quot;,&quot;vk10&quot;:&quot;Shift&quot;,&quot;vk11&quot;:&quot;Ctrl&quot;,&quot;vk12&quot;:&quot;Alt&quot;,&quot;vk13&quot;:&quot;Pause&quot;,&quot;vk14&quot;:&quot;Caps&quot;,&quot;vk1B&quot;:&quot;Esc&quot;,&quot;vk20&quot;:&quot;Space&quot;,&quot;vk21&quot;:&quot;PgUp&quot;,&quot;vk22&quot;:&quot;PgDn&quot;,&quot;vk23&quot;:&quot;End&quot;,&quot;vk24&quot;:&quot;Home&quot;,&quot;vk25&quot;:&quot;Left&quot;,&quot;vk26&quot;:&quot;Up&quot;,&quot;vk27&quot;:&quot;Right&quot;,&quot;vk28&quot;:&quot;Down&quot;,&quot;vk29&quot;:&quot;Select&quot;,&quot;vk2A&quot;:&quot;Print&quot;,&quot;vk2B&quot;:&quot;Execute&quot;,&quot;vk2C&quot;:&quot;PrScr&quot;,&quot;vk2D&quot;:&quot;Ins&quot;,&quot;vk2E&quot;:&quot;Del&quot;,&quot;vk2F&quot;:&quot;Help&quot;,&quot;vk30&quot;:&quot;0&quot;,&quot;vk31&quot;:&quot;1&quot;,&quot;vk32&quot;:&quot;2&quot;,&quot;vk33&quot;:&quot;3&quot;,&quot;vk34&quot;:&quot;4&quot;,&quot;vk35&quot;:&quot;5&quot;,&quot;vk36&quot;:&quot;6&quot;,&quot;vk37&quot;:&quot;7&quot;,&quot;vk38&quot;:&quot;8&quot;,&quot;vk39&quot;:&quot;9&quot;,&quot;vk41&quot;:&quot;A&quot;,&quot;vk42&quot;:&quot;B&quot;,&quot;vk43&quot;:&quot;C&quot;,&quot;vk44&quot;:&quot;D&quot;,&quot;vk45&quot;:&quot;E&quot;,&quot;vk46&quot;:&quot;F&quot;,&quot;vk47&quot;:&quot;G&quot;,&quot;vk48&quot;:&quot;H&quot;,&quot;vk49&quot;:&quot;I&quot;,&quot;vk4A&quot;:&quot;J&quot;,&quot;vk4B&quot;:&quot;K&quot;,&quot;vk4C&quot;:&quot;L&quot;,&quot;vk4D&quot;:&quot;M&quot;,&quot;vk4E&quot;:&quot;N&quot;,&quot;vk4F&quot;:&quot;O&quot;,&quot;vk50&quot;:&quot;P&quot;,&quot;vk51&quot;:&quot;Q&quot;,&quot;vk52&quot;:&quot;R&quot;,&quot;vk53&quot;:&quot;S&quot;,&quot;vk54&quot;:&quot;T&quot;,&quot;vk55&quot;:&quot;U&quot;,&quot;vk56&quot;:&quot;V&quot;,&quot;vk57&quot;:&quot;W&quot;,&quot;vk58&quot;:&quot;X&quot;,&quot;vk59&quot;:&quot;Y&quot;,&quot;vk5A&quot;:&quot;Z&quot;,&quot;vk5B&quot;:&quot;LWin&quot;,&quot;vk5C&quot;:&quot;RWin&quot;,&quot;vk5D&quot;:&quot;App&quot;,&quot;vk60&quot;:&quot;Num0&quot;,&quot;vk61&quot;:&quot;Num1&quot;,&quot;vk62&quot;:&quot;Num2&quot;,&quot;vk63&quot;:&quot;Num3&quot;,&quot;vk64&quot;:&quot;Num4&quot;,&quot;vk65&quot;:&quot;Num5&quot;,&quot;vk66&quot;:&quot;Num6&quot;,&quot;vk67&quot;:&quot;Num7&quot;,&quot;vk68&quot;:&quot;Num8&quot;,&quot;vk69&quot;:&quot;Num9&quot;,&quot;vk6A&quot;:&quot;*&quot;,&quot;vk6B&quot;:&quot;+&quot;,&quot;vk6D&quot;:&quot;-&quot;,&quot;vk6E&quot;:&quot;Dec&quot;,&quot;vk6F&quot;:&quot;/&quot;,&quot;vk70&quot;:&quot;F1&quot;,&quot;vk71&quot;:&quot;F2&quot;,&quot;vk72&quot;:&quot;F3&quot;,&quot;vk73&quot;:&quot;F4&quot;,&quot;vk74&quot;:&quot;F5&quot;,&quot;vk75&quot;:&quot;F6&quot;,&quot;vk76&quot;:&quot;F7&quot;,&quot;vk77&quot;:&quot;F8&quot;,&quot;vk78&quot;:&quot;F9&quot;,&quot;vk79&quot;:&quot;F10&quot;,&quot;vk7A&quot;:&quot;F11&quot;,&quot;vk7B&quot;:&quot;F12&quot;,&quot;vk90&quot;:&quot;NumLck&quot;,&quot;vk91&quot;:&quot;ScrLck&quot;,&quot;vkAD&quot;:&quot;Vol Mute&quot;,&quot;vkAE&quot;:&quot;Vol Down&quot;,&quot;vkAF&quot;:&quot;Vol Up&quot;,&quot;vkB0&quot;:&quot;Next Track&quot;,&quot;vkB1&quot;:&quot;Previous Track&quot;,&quot;vkB3&quot;:&quot;Play/Pause Media&quot;}

vkod:={&quot;Нет&quot;:&quot;&quot;,&quot;LButton&quot;:&quot;vk01&quot;,&quot;RButton&quot;:&quot;vk02&quot;,&quot;MButton&quot;:&quot;vk04&quot;,&quot;X1Button&quot;:&quot;vk05&quot;,&quot;X2Button&quot;:&quot;vk06&quot;,&quot;BS&quot;:&quot;vk08&quot;,&quot;TAB&quot;:&quot;vk09&quot;,&quot;Enter&quot;:&quot;vk0D&quot;,&quot;Shift&quot;:&quot;vk10&quot;,&quot;Ctrl&quot;:&quot;vk11&quot;,&quot;Alt&quot;:&quot;vk12&quot;,&quot;Pause&quot;:&quot;vk13&quot;,&quot;Caps&quot;:&quot;vk14&quot;,&quot;Esc&quot;:&quot;vk1B&quot;,&quot;Space&quot;:&quot;vk20&quot;,&quot;PgUp&quot;:&quot;vk21&quot;,&quot;PgDn&quot;:&quot;vk22&quot;,&quot;End&quot;:&quot;vk23&quot;,&quot;Home&quot;:&quot;vk24&quot;,&quot;Left&quot;:&quot;vk25&quot;,&quot;Up&quot;:&quot;vk26&quot;,&quot;Right&quot;:&quot;vk27&quot;,&quot;Down&quot;:&quot;vk28&quot;,&quot;Select&quot;:&quot;vk29&quot;,&quot;Print&quot;:&quot;vk2A&quot;,&quot;Execute&quot;:&quot;vk2B&quot;,&quot;PrScr&quot;:&quot;vk2C&quot;,&quot;Ins&quot;:&quot;vk2D&quot;,&quot;Del&quot;:&quot;vk2E&quot;,&quot;Help&quot;:&quot;vk2F&quot;,&quot;0&quot;:&quot;vk30&quot;,&quot;1&quot;:&quot;vk31&quot;,&quot;2&quot;:&quot;vk32&quot;,&quot;3&quot;:&quot;vk33&quot;,&quot;4&quot;:&quot;vk34&quot;,&quot;5&quot;:&quot;vk35&quot;,&quot;6&quot;:&quot;vk36&quot;,&quot;7&quot;:&quot;vk37&quot;,&quot;8&quot;:&quot;vk38&quot;,&quot;9&quot;:&quot;vk39&quot;,&quot;A&quot;:&quot;vk41&quot;,&quot;B&quot;:&quot;vk42&quot;,&quot;C&quot;:&quot;vk43&quot;,&quot;D&quot;:&quot;vk44&quot;,&quot;E&quot;:&quot;vk45&quot;,&quot;F&quot;:&quot;vk46&quot;,&quot;G&quot;:&quot;vk47&quot;,&quot;H&quot;:&quot;vk48&quot;,&quot;I&quot;:&quot;vk49&quot;,&quot;J&quot;:&quot;vk4A&quot;,&quot;K&quot;:&quot;vk4B&quot;,&quot;L&quot;:&quot;vk4C&quot;,&quot;M&quot;:&quot;vk4D&quot;,&quot;N&quot;:&quot;vk4E&quot;,&quot;O&quot;:&quot;vk4F&quot;,&quot;P&quot;:&quot;vk50&quot;,&quot;Q&quot;:&quot;vk51&quot;,&quot;R&quot;:&quot;vk52&quot;,&quot;S&quot;:&quot;vk53&quot;,&quot;T&quot;:&quot;vk54&quot;,&quot;U&quot;:&quot;vk55&quot;,&quot;V&quot;:&quot;vk56&quot;,&quot;W&quot;:&quot;vk57&quot;,&quot;X&quot;:&quot;vk58&quot;,&quot;Y&quot;:&quot;vk59&quot;,&quot;Z&quot;:&quot;vk5A&quot;,&quot;LWin&quot;:&quot;vk5B&quot;,&quot;RWin&quot;:&quot;vk5C&quot;,&quot;App&quot;:&quot;vk5D&quot;,&quot;Num0&quot;:&quot;vk60&quot;,&quot;Num1&quot;:&quot;vk61&quot;,&quot;Num2&quot;:&quot;vk62&quot;,&quot;Num3&quot;:&quot;vk63&quot;,&quot;Num4&quot;:&quot;vk64&quot;,&quot;Num5&quot;:&quot;vk65&quot;,&quot;Num6&quot;:&quot;vk66&quot;,&quot;Num7&quot;:&quot;vk67&quot;,&quot;Num8&quot;:&quot;vk68&quot;,&quot;Num9&quot;:&quot;vk69&quot;,&quot;*&quot;:&quot;vk6A&quot;,&quot;+&quot;:&quot;vk6B&quot;,&quot;-&quot;:&quot;vk6D&quot;,&quot;Dec&quot;:&quot;vk6E&quot;,&quot;/&quot;:&quot;vk6F&quot;,&quot;F1&quot;:&quot;vk70&quot;,&quot;F2&quot;:&quot;vk71&quot;,&quot;F3&quot;:&quot;vk72&quot;,&quot;F4&quot;:&quot;vk73&quot;,&quot;F5&quot;:&quot;vk74&quot;,&quot;F6&quot;:&quot;vk75&quot;,&quot;F7&quot;:&quot;vk76&quot;,&quot;F8&quot;:&quot;vk77&quot;,&quot;F9&quot;:&quot;vk78&quot;,&quot;F10&quot;:&quot;vk79&quot;,&quot;F11&quot;:&quot;vk7A&quot;,&quot;F12&quot;:&quot;vk7B&quot;,&quot;NumLck&quot;:&quot;vk90&quot;,&quot;ScrLck&quot;:&quot;vk91&quot;,&quot;Vol Mute&quot;:&quot;vkAD&quot;,&quot;Vol Down&quot;:&quot;vkAE&quot;,&quot;Vol Up&quot;:&quot;vkAF&quot;,&quot;Next Track&quot;:&quot;vkB0&quot;,&quot;Previous Track&quot;:&quot;vkB1&quot;,&quot;Play/Pause Media&quot;:&quot;vkB3&quot;}

List=Нет|0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|LButton|RButton|MButton|X1Button|X2Button|BS|TAB|Enter|Shift|Ctrl|Alt|Pause|Caps|Esc|Space|PgUp|PgDn|End|Home|Left|Up|Right|Down|Select|Print|Execute|PrScr|Ins|Del|Help|LWin|RWin|App|Num0|Num1|Num2|Num3|Num4|Num5|Num6|Num7|Num8|Num9|*|+|-|Dec|/|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NumLck|ScrLck|Vol Mute|Vol Down|Vol Up|Next Track|Previous Track|Play/Pause Media

Settingspath=SOFTWARE\DF\Joystics

Joystics=0:Поумолчанию
GetKeyState,Name,JoyName
GetKeyState,Info,JoyInfo
GetKeyState,Buttons,JoyButtons
num=
loop,10
{
  GetKeyState,Names,%a_index%JoyName
  if Names=
    continue
  num++
  GetKeyState,Name%num%,%num%JoyName
  GetKeyState,Info%num%, %num%JoyInfo
  GetKeyState,Buttons%num%,%num%JoyButtons
  Joystics.=&quot;|&quot; num &quot;:&quot;Name%num% &quot; &quot; Info%num% &quot; &quot; Buttons%num%
  Joystics%num%:=Name%num% &quot; &quot; Info%num% &quot; &quot; Buttons%num%
}

ifexist,%a_scriptdir%\joy.ico
  Menu,Tray,Icon,%a_scriptdir%\joy.ico
;Menu,Tray,NoStandard
Menu,Tray,Add,Настройки,Settings
Menu,Tray,Add,Выход,Exit
Menu,Tray,default,Настройки

gosub,LoadSettings

Gui,Add,Picture,x13 y36,joy.png
Gui,Add,checkbox,x507 y352 Checked%mousemode% vmousemode,Правый стик = Мышь
Gui,Add,text,x507 y372,Скорость:
Gui,Add,Edit,x560 y369 w30 -Multi vJoyMultiplier,%JoyMultiplier%
Gui,Add,ComboBox,x277 y374 w60 v_BLLeft,%List%
Gui,Add,ComboBox,x277 y397 w60 v_BLRight,%List%
Gui,Add,ComboBox,x204 y374 w60 v_BLUp,%List%
Gui,Add,ComboBox,x204 y397 w60 v_BLDown,%List%
Gui,Add,ComboBox,x348 y374 w60 v_BRLeft,%List%
Gui,Add,ComboBox,x348 y397 w60 v_BRRight,%List%
Gui,Add,ComboBox,x421 y374 w60 v_BRUp,%List%
Gui,Add,ComboBox,x421 y397 w60 v_BRDown,%List%
Gui,Add,ComboBox,x520 y247 w60 v_B1,%List%
Gui,Add,ComboBox,x520 y215 w60 v_B2,%List%
Gui,Add,ComboBox,x520 y277 w60 v_B3,%List%
Gui,Add,ComboBox,x520 y185 w60 v_B4,%List%
Gui,Add,ComboBox,x103 y152 w60 v_B5,%List%
Gui,Add,ComboBox,x520 y152 w60 v_B6,%List%
Gui,Add,ComboBox,x103 y117 w60 v_B7,%List%
Gui,Add,ComboBox,x519 y118 w60 v_B8,%List%
Gui,Add,ComboBox,x255 y73 w60 v_B9,%List%
Gui,Add,ComboBox,x365 y73 w60 v_B10,%List%
Gui,Add,ComboBox,x103 y308 w60 v_B11,%List%
Gui,Add,ComboBox,x520 y308 w60 v_B12,%List%
Gui,Add,ComboBox,x68 y185 w46 v_P0,%List%
Gui,Add,ComboBox,x116 y185 w46 v_P1,%List%
Gui,Add,ComboBox,x116 y230 w46 v_P2,%List%
Gui,Add,ComboBox,x116 y275 w46 v_P3,%List%
Gui,Add,ComboBox,x68 y275 w46 v_P4,%List%
Gui,Add,ComboBox,x20 y275 w46 v_P5,%List%
Gui,Add,ComboBox,x20 y230 w46 v_P6,%List%
Gui,Add,ComboBox,x20 y185 w46 v_P7,%List%
Gui,Add,ComboBox,x17 y10 w610 vJoystic gChengeDev,%Joystics%
Gui,Add,text,x17 y35 w230 h65,Info
Gui,Add,text,x80 y233,POV
Gui,Add,text,x214 y419 w60,X
Gui,Add,text,x285 y419 w60,Y
Gui,Add,text,x357 y419 w60,Z
Gui,Add,text,x430 y419 w60,R
Gui,Add,text,x193 y378,U:
Gui,Add,text,x193 y400,D:
Gui,Add,text,x267 y378,L:
Gui,Add,text,x267 y400,R:
Gui,Add,text,x339 y378,L:
Gui,Add,text,x339 y400,R:
Gui,Add,text,x411 y378,U:
Gui,Add,text,x411 y400,D:
Gui,Add,text,x582 y250,Button 1
Gui,Add,text,x582 y218,Button 2
Gui,Add,text,x582 y280,Button 3
Gui,Add,text,x582 y188,Button 4
Gui,Add,text,x55 y155,Button 5
Gui,Add,text,x582 y155,Button 6
Gui,Add,text,x55 y121,Button 7
Gui,Add,text,x582 y121,Button 8
Gui,Add,text,x264 y58,Button 9
Gui,Add,text,x371 y58,Button 10
Gui,Add,text,x55 y311,Button 11
Gui,Add,text,x582 y311,Button 12
Gui,Add,groupbox,x15 y173 w153 h129
gui,add,button,x570 y400 w60 h25 gOk,Oк
gui,add,button,x500 y400 w60 h25 gCencel,Отмена
gui,add,button,x500 y40 w130 h25 gFindJoys,Find Joy&#039;s
Gui,Add,checkbox,x13 y342 w175 h27 Checked%keysendmode% gSubmit vkeysendmode,Посылать нажатия в НЕактивное окно (недоделано)
Gui,Add,text,x13 y373,PID:
Gui,Add,Edit,x50 y370 w50 -Multi vPID,%PID%
Gui,Add,text,x13 y396,Title:
Gui,Add,Edit,x50 y393 w140 -Multi vTitle,%Title%
Gui,Add,text,x13 y419,Class:
Gui,Add,Edit,x50 y416 w140 -Multi vClass,%Class%
GuiControl,+default,Oк

SettingsDefault=
(
keysendmode=0
PID=
title=
class=
JoyMultiplier=5
mousemode=1
BLLeft=vk25
BLRight=vk27
BLUp=vk26
BLDown=vk28
BRLeft=vk64
BRRight=vk66
BRUp=vk68
BRDown=vk62
B1=vk12
B2=vk20
B3=vk11
B4=vk26
B5=vk51
B6=vk5a
B7=vk71
B8=vk4b
B9=vk1b
B10=vk0D
B11=vk01
B12=vk02
P0=vk26
P1=vk59
P2=vk27
P3=
P4=vk28
P5=
P6=vk25
P7=vk4e
)

gosub,settings

loop
{
;  if oldtime!=
;    time:=a_tickcount-oldtime
;  oldtime:=a_tickcount
;  if time&lt;10
    sleep,1
; POV -----------------------------------------------------------------------------
  ifinstring,Info%JoystickNumber%,P
  {
    _Ojp:=_jp
    OldPOV:=POV
    jp:=GetKeyState(JoystickNumber . &quot;JoyPOV&quot;)/4500
    if jp&lt;0
    {
      jp=-1
      POV=
    }
    else
    {
      jp:=round(jp)
      POV:=P%jp%
    }
    if (OldPOV!=POV)
    {
      if set=1
      {
        _jp:=jp+21
        if _Ojp between 21 and 28
          GuiControl,Enable,ComboBox%_ojp%
        if _jp between 21 and 28
          GuiControl,Disable,ComboBox%_jp%
      }
      else
      {
        if OldPOV!=
        {
          if keysendmode=0
            Send, {%OldPOV% Up}
          else
          {
            SendMessage,0x06,1,,,%window%
            ControlSend,,{%OldPOV% Up},%Window%
          }
        }
        if POV!=
        {
          if keysendmode=0
            Send, {%POV% Down}
          else
          {
            SendMessage,0x06,1,,,%window%
            ControlSend,,{%OldPOV% Down},%Window%
          }
        }
      }
    }
  }
; Buttons -------------------------------------------------------------------------
  GetKeyState,joy_buttons,%JoystickNumber%JoyButtons
  Loop,%joy_buttons%
  {
    GetKeyState,Bstate%a_index%,%JoystickNumber%joy%a_index%
    if (Bstate%a_index%=&quot;U&quot; and joy%a_index%=1)
    {
      joy%a_index%=
      b:=B%a_index%
      if set=1
      {
        n:=a_index+8
        GuiControl,Enable,ComboBox%n%
      }
      else
      {
        if keysendmode=0
          send {%b% Up}
        else
        {
          SendMessage,0x06,1,,,%window%
          ControlSend,,{%b% Up},%Window%
        }
      }
    }
    else if (Bstate%a_index%=&quot;D&quot; and set=1)
    {
      n:=a_index+8
      GuiControl,Disable,ComboBox%n%
    }
  }
if set=1
{
  if keysendmode=1
  {
    mousegetpos,,,win
    WinGet,_PID,PID,ahk_id %win%
    WinGettitle,_title,ahk_id %win%
    WinGetclass,_class,ahk_id %win%
    if _class not contains tooltip
      tooltip,PID: %_pid%`nTitle: %_Title%`nClass: %_class%`n`nИспользовать пид нажмите F1`nИспользовать название окна F2`nИспользовать класс окна F3
    else
      tooltip
  }
  else
    tooltip
  JoyX_:=round(GetKeyState(JoystickNumber . &quot;JoyX&quot;))
  JoyY_:=round(GetKeyState(JoystickNumber . &quot;JoyY&quot;))
  JoyZ_:=round(GetKeyState(JoystickNumber . &quot;JoyZ&quot;))
  JoyR_:=round(GetKeyState(JoystickNumber . &quot;JoyR&quot;))
  ControlSetText,static5,X  %JoyX_%,Настройки джойстика
  ControlSetText,static6,Y  %JoyY_%,Настройки джойстика
  ControlSetText,static7,Z  %JoyZ_%,Настройки джойстика
  ControlSetText,static8,R  %JoyR_%,Настройки джойстика
  continue
}
; Левый стик -----------------------------------------------------------------------------
  if Name%JoystickNumber%=
    continue
  GetKeyState,JoyY,%JoystickNumber%JoyY
  if (Joyy&lt;60 and chekY1=&quot;&quot;)  ; левый вниз
  {
    chekY1=1
    if keysendmode=0
      send,{%BLDown% up}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLDown% up},%Window%
    }
  }
  else if (Joyy&gt;80 and chekY1=1)
  {
    chekY1=
    if keysendmode=0
      send,{%BLDown% down}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLDown% down},%Window%
    }
  }

  if (Joyy&gt;40 and chekY2=&quot;&quot;)  ; левый вверх
  {
    chekY2=1
    if keysendmode=0
      send,{%BLUp% up}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLUp% up},%Window%
    }
  }
  else if (Joyy&lt;20 and chekY2=1)
  {
    chekY2=
    if keysendmode=0
      send,{%BLUp% down}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLUp% down},%Window%
    }
  }

  GetKeyState,JoyX,%JoystickNumber%JoyX
  if (Joyx&lt;60 and chekX1=&quot;&quot;)  ; левый вправо
  {
    chekX1=1
    if keysendmode=0
      send,{%BLRight% up}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLRight% up},%Window%
    }
  }
  else if (Joyx&gt;80 and chekX1=1)
  {
    chekX1=
    if keysendmode=0
      send,{%BLRight% down}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLRight% down},%Window%
    }
  }

  if (Joyx&gt;40 and chekX2=&quot;&quot;)  ; левый влево
  {
    chekX2=1
    if keysendmode=0
      send,{%BLLeft% up}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLLeft% up},%Window%
    }
  }
  else if (Joyx&lt;20 and chekX2=1)
  {
    chekX2=
    if keysendmode=0
      send,{%BLLeft% down}
    else
    {
      SendMessage,0x06,1,,,%window%
      ControlSend,,{%BLLeft% down},%Window%
    }
  }

; Правый стик -----------------------------------------------------------------------------
  if mousemode=0
  {
    GetKeyState,JoyR,%JoystickNumber%JoyR
    if (Joyr&gt;40 and Joyr&lt;60 and chekR=&quot;&quot;)  ; правый верх низ
    {
      chekR=1
      if keysendmode=0
        send,{%BRDown% up}{%BRUp% up}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRDown% up}{%BRUp% up},%Window%
      }
    }
    else if (Joyr&gt;80 and chekR=1)
    {
      chekR=
      if keysendmode=0
        send,{%BRDown% down}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRDown% down},%Window%
      }
    }
    else if (Joyr&lt;20 and chekR=1)
    {
      chekR=
      if keysendmode=0
        send,{%BRUp% down}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRUp% down},%Window%
      }
    }

    GetKeyState,JoyZ,%JoystickNumber%JoyZ
    if (Joyz&gt;40 and Joyz&lt;60 and chekZ=&quot;&quot;)  ; правый лево право
    {
      chekZ=1
      if keysendmode=0
        send,{%BRLeft% up}{%BRRight% up}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRLeft% up}{%BRRight% up},%Window%
      }
    }
    else if (Joyz&gt;80 and chekZ=1)
    {
      chekZ=
      if keysendmode=0
        send,{%BRRight% down}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRRight% down},%Window%
      }
    }
    else if (Joyz&lt;20 and chekZ=1)
    {
      chekZ=
      if keysendmode=0
        send,{%BRLeft% down}
      else
      {
        SendMessage,0x06,1,,,%window%
        ControlSend,,{%BRLeft% down},%Window%
      }
    }
  }
  else ; Mouse -----------------------------------------------------------------------------
  {
    DeltaZ:=GetKeyState(JoystickNumber . &quot;JoyZ&quot;)-50
    DeltaR:=GetKeyState(JoystickNumber . &quot;JoyR&quot;)-50
    if (ABS(DeltaZ)&gt;1 or ABS(DeltaR)&gt;1)
    {
      IntX := (DeltaZ/60)*JoyMultiplier*mult
      IntY := (DeltaR/60)*JoyMultiplier*mult
;tooltip,%DeltaZ% %DeltaR%`n%IntX% %IntY%
      mult+=0.01
      if mult&lt;0.01
        mult=0.01
      x := 0
      y := 0
      if ABS(IntX) &lt;= 1
      {
        PrevX += IntX
        if ABS(PrevX) &gt;= 1
        {
          x := PrevX
          PrevX := 0
        }
      }
      else
      {
        x := IntX
        PrevX := 0
      }
      if ABS(IntY) &lt;= 1z
      {
        PrevY += IntY
        if ABS(PrevY) &gt;= 1
        {
          y := PrevY
          PrevY :=0
        }
      }
      else
      {
        y := IntY
        PrevY := 0
      }
      DllCall(&quot;mouse_event&quot;, uint, 1, int, x, int, y, uint, 0, int, 0)
    }
    else
      mult=0.5
  }
; End -----------------------------------------------------------------------------
}
return

joy1::
joy1=1
if set=
{
  if keysendmode=0
    send,{%b1% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b1% down},%Window%
  }
}
return

joy2::
joy2=1
if set=
{
  if keysendmode=0
    send,{%b2% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b2% down},%Window%
  }
}
return

joy3::
joy3=1
if set=
{
  if keysendmode=0
    send,{%b3% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b3% down},%Window%
  }
}
return

joy4::
joy4=1
if set=
{
  if keysendmode=0
    send,{%b4% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b4% down},%Window%
  }
}
return

joy5::
joy5=1
if set=
{
  if keysendmode=0
    send,{%b5% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b5% down},%Window%
  }
}
return

joy6::
joy6=1
if set=
{
  if keysendmode=0
    send,{%b6% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b6% down},%Window%
  }
}
return

joy7::
joy7=1
if set=
{
  if keysendmode=0
    send,{%b7% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b7% down},%Window%
  }
}
return

joy8::
joy8=1
if set=
{
  if keysendmode=0
    send,{%b8% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b8% down},%Window%
  }
}
return

joy9::
joy9=1
if set=
{
  if keysendmode=0
    send,{%b9% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b9% down},%Window%
  }
}
if (joy10=1 and mousemode=1)
{
  mousemode=0
  tooltip,Правый стик = Кнопки
  settimer,removetooltip,-2000
}
else if (joy10=1 and mousemode=0)
{
  mousemode=1
  tooltip,Правый стик = Мышь
  settimer,removetooltip,-3000
}
return

joy10::
joy10=1
if set=
{
  if keysendmode=0
    send,{%b10% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b10% down},%Window%
  }
}
if (joy9=1 and mousemode=1)
{
  mousemode=0
  tooltip,Правый стик = Кнопки
}
else if (joy9=1 and mousemode=0)
{
  mousemode=1
  tooltip,Правый стик = Мышь
}
return

joy11::
joy11=1
if set=
{
  if keysendmode=0
    send,{%b11% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b11% down},%Window%
  }
}
return

joy12::
joy12=1
if set=
{
  if keysendmode=0
    send,{%b12% down}
  else
  {
    SendMessage,0x06,1,,,%window%
    ControlSend,,{%b12% down},%Window%
  }
}
return

ChengeDev:
tooltip
gui,submit,nohide
StringLeft,JoystickNumber,Joystic,1
if JoystickNumber=0
  JoystickNumber=
RegWrite,REG_SZ,HKCU,%Settingspath%,JoystickNumber,%JoystickNumber%
gosub,LoadSettings
Control,ChooseString,% key[&quot;&quot; BLLeft &quot;&quot;],ComboBox1,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BLRight &quot;&quot;],ComboBox2,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BLUp &quot;&quot;],ComboBox3,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BLDown &quot;&quot;],ComboBox4,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BRLeft &quot;&quot;],ComboBox5,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BRRight &quot;&quot;],ComboBox6,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BRUp &quot;&quot;],ComboBox7,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; BRDown &quot;&quot;],ComboBox8,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B1 &quot;&quot;],ComboBox9,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B2 &quot;&quot;],ComboBox10,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B3 &quot;&quot;],ComboBox11,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B4 &quot;&quot;],ComboBox12,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B5 &quot;&quot;],ComboBox13,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B6 &quot;&quot;],ComboBox14,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B7 &quot;&quot;],ComboBox15,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B8 &quot;&quot;],ComboBox16,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B9 &quot;&quot;],ComboBox17,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B10 &quot;&quot;],ComboBox18,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B11 &quot;&quot;],ComboBox19,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; B12 &quot;&quot;],ComboBox20,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P0 &quot;&quot;],ComboBox21,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P1 &quot;&quot;],ComboBox22,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P2 &quot;&quot;],ComboBox23,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P3 &quot;&quot;],ComboBox24,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P4 &quot;&quot;],ComboBox25,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P5 &quot;&quot;],ComboBox26,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P6 &quot;&quot;],ComboBox27,Настройки джойстика
Control,ChooseString,% key[&quot;&quot; P7 &quot;&quot;],ComboBox28,Настройки джойстика
ControlSetText,Edit1,%JoyMultiplier%,Настройки джойстика
ControlSetText,Edit31,%PID%,Настройки джойстика
ControlSetText,Edit32,%title%,Настройки джойстика
ControlSetText,Edit33,%class%,Настройки джойстика
Controlsettext,Static3,% &quot;Имя: &quot; Name%JoystickNumber% &quot;`nДоп. оси: &quot; Info%JoystickNumber% &quot;`nКнопок: &quot; Buttons%JoystickNumber%,Настройки джойстика
if mousemode=1
  Control,Check,,Button1,Настройки джойстика
else
  Control,UnCheck,,Button1,Настройки джойстика
if keysendmode=1
  Control,Check,,Button6,Настройки джойстика
else
  Control,UnCheck,,Button6,Настройки джойстика
return

Settings:
RegRead,JoystickNumber,HKCU,%Settingspath%,JoystickNumber
gui,show,,Настройки джойстика
sell:=JoystickNumber+1
sell:= JoystickNumber=&quot;&quot; ? 1 : sell
Control,Choose,% sell,ComboBox29,Настройки джойстика
;gosub,ChengeDev
set=1
return

Submit:
gui,submit,nohide
return

Ok:
if title!=
  Window=%title%
if class!=
  Window=ahk_class %class%
if pid!=
  Window=ahk_pid %pid%
if keysendmode=1
  tooltip,%Window%
settimer,removetooltip,-2000
set=
gui,submit
BLLeft:=vkod[&quot;&quot; _BLLeft &quot;&quot;]
BLRight:=vkod[&quot;&quot; _BLRight &quot;&quot;]
BLUp:=vkod[&quot;&quot; _BLUp &quot;&quot;]
BLDown:=vkod[&quot;&quot; _BLDown &quot;&quot;]
BRLeft:=vkod[&quot;&quot; _BRLeft &quot;&quot;]
BRRight:=vkod[&quot;&quot; _BRRight &quot;&quot;]
BRUp:=vkod[&quot;&quot; _BRUp &quot;&quot;]
BRDown:=vkod[&quot;&quot; _BRDown &quot;&quot;]
B1:=vkod[&quot;&quot; _B1 &quot;&quot;]
B2:=vkod[&quot;&quot; _B2 &quot;&quot;]
B3:=vkod[&quot;&quot; _B3 &quot;&quot;]
B4:=vkod[&quot;&quot; _B4 &quot;&quot;]
B5:=vkod[&quot;&quot; _B5 &quot;&quot;]
B6:=vkod[&quot;&quot; _B6 &quot;&quot;]
B7:=vkod[&quot;&quot; _B7 &quot;&quot;]
B8:=vkod[&quot;&quot; _B8 &quot;&quot;]
B9:=vkod[&quot;&quot; _B9 &quot;&quot;]
B10:=vkod[&quot;&quot; _B10 &quot;&quot;]
B11:=vkod[&quot;&quot; _B11 &quot;&quot;]
B12:=vkod[&quot;&quot; _B12 &quot;&quot;]
P0:=vkod[&quot;&quot; _P0 &quot;&quot;]
P1:=vkod[&quot;&quot; _P1 &quot;&quot;]
P2:=vkod[&quot;&quot; _P2 &quot;&quot;]
P3:=vkod[&quot;&quot; _P3 &quot;&quot;]
P4:=vkod[&quot;&quot; _P4 &quot;&quot;]
P5:=vkod[&quot;&quot; _P5 &quot;&quot;]
P6:=vkod[&quot;&quot; _P6 &quot;&quot;]
P7:=vkod[&quot;&quot; _P7 &quot;&quot;]
gosub,SaveSettings
return

Cencel:
settimer,removetooltip,-2000
set=
gui,hide
return

SaveSettings:
RegWrite,REG_SZ,HKCU,%Settingspath%,JoystickNumber,%JoystickNumber%
loop,parse,SettingsDefault,`n
{
  Loop,parse,a_loopfield,=
  {
    if a_index=1
    {
      Setting:=a_loopfield
      Break
    }
  }
  RegWrite,REG_SZ,HKCU,%Settingspath%%Joystic%,%Setting%,% %Setting%
}
LoadSettings:
loop,parse,SettingsDefault,`n
{
  Loop,parse,a_loopfield,=
  {
    if a_index=1
      Setting:=a_loopfield
    else if a_index=2
      Default:=a_loopfield
    else
      Default.=&quot;=&quot; a_loopfield
  }
  RegRead,%Setting%,HKCU,%Settingspath%%Joystic%,%Setting%
  RegRead,Rtmp,HKCU,%Settingspath%%Joystic%,%Setting%
  if Rtmp=
  {
    RegWrite,REG_SZ,HKCU,%Settingspath%%Joystic%,%Setting%,%Default%
    RegRead,%Setting%,HKCU,%Settingspath%%Joystic%,%Setting%
  }
}
return

Exit:
exitapp
return

FindJoys:
run,%a_scriptfullpath%
Exitapp
return

RemoveToolTip:
tooltip
return

#if set=1
F1::
if ChengeDev!=
  return
ControlSetText,Edit31,%_PID%,Настройки джойстика
ControlSetText,Edit32,,Настройки джойстика
ControlSetText,Edit33,,Настройки джойстика
gui,submit,nohide
gosub,Ok
return

F2::
if ChengeDev!=
  return
ControlSetText,Edit31,,Настройки джойстика
ControlSetText,Edit32,%_Title%,Настройки джойстика
ControlSetText,Edit33,,Настройки джойстика
gui,submit,nohide
gosub,Ok
return

F3::
if ChengeDev!=
  return
ControlSetText,Edit31,,Настройки джойстика
ControlSetText,Edit32,,Настройки джойстика
ControlSetText,Edit33,%_class%,Настройки джойстика
gui,submit,nohide
gosub,Ok
return
#if
</code></pre></div><p>С картинкой интерфейс получше выглядит.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sun, 28 Dec 2014 11:32:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89818#p89818</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89810#p89810</link>
			<description><![CDATA[<p>А что за функции <em>XInput_Init()</em> и <em>XInput_GetState()</em> в твоем коде?<br />И где их содержимое?</p><br /><p>...</p><br /><p>Погуглил - теперь понятно.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 27 Dec 2014 18:22:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89810#p89810</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89807#p89807</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Вот кстати делюсь своими наработками, посмотри может пригодится:<br />Тут переназначение на клавиши, работающие без &quot;зависаний&quot; клавиш.</p></blockquote></div><p>Раз пошла такая пьянка, делюсь своим скриптом <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /> Делал для WoT под Xbox 360 геймпад, но, в принципе, можно переделать под любую другую игру и контроллер.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#Persistent
SetTimer, WatchAxisFirstJoyMoveForwardAndZoom, 10
SetTimer, WatchAxisFirstJoyMoveRotate, 10
SetTimer, WatchAxisFirstJoyCameraRotate, 5
SetTimer, TriggerStateFirstJoy, 10
SetTimer, FirstJoyShoot, 10
SetTimer, WatchFirstJoyPOV, 10
SetTimer, WatchWindow, 100
SetTimer, SplitScreen, 100
return

;;;;;;;;;;;;отслеживание нажатия триггеров

TriggerStateFirstJoy:
XInput_Init()
    Loop, 4 {
        if State := XInput_GetState(A_Index-1) {
            LT := State.bLeftTrigger
            RT := State.bRightTrigger
        }
    }
if (LT = 1 and RT = 1)
AVAR = 7
if (LT = 0 and RT = 0)
AVAR = 1
if (LT = 1 and RT = 0)
AVAR = 5
if (LT = 0 and RT = 1)
AVAR = 9
return

;;;;;;;;;;;;плавное движение вперед/назад и зум

WatchAxisFirstJoyMoveForwardAndZoom:
GetKeyState, 1JoyY, 1JoyY
GetKeyState, 1Joy2, 1Joy2
GetKeyState, 1Joy3, 1Joy3
FirstJoyMoveForwardAndZoomPrev = %FirstJoyMoveForwardAndZoom%

if 1Joy2 = D
    GoSub, FirstJoyConsumables
if 1Joy3 = D 
    GoSub, FirstJoyConsumables
else if LT &gt; 64
    {
    GoSub, FirstJoyZoomCoef
    if 1JoyY &lt; 30
        FirstJoyMoveForwardAndZoom = PgDn
    else if 1JoyY &gt; 70
        FirstJoyMoveForwardAndZoom = PgUp
    else
        FirstJoyMoveForwardAndZoom =
    }
else if 1JoyY &lt; 5
    FirstJoyMoveForwardAndZoom = vk55
else if 1JoyY between 6 and 15
    FirstJoyMoveForwardAndZoom = vk59
else if 1JoyY between 16 and 25
    FirstJoyMoveForwardAndZoom = vk48
else if 1JoyY between 75 and 89
    FirstJoyMoveForwardAndZoom = vk4E
else if 1JoyY &gt; 90
    FirstJoyMoveForwardAndZoom = vk4A
else
    FirstJoyMoveForwardAndZoom =

if FirstJoyMoveForwardAndZoom = %FirstJoyMoveForwardAndZoomPrev%
return

SetKeyDelay -1
if FirstJoyMoveForwardAndZoomPrev
{
    ControlSend,, {%FirstJoyMoveForwardAndZoomPrev% up}, WoT Client
}
if FirstJoyMoveForwardAndZoom
{
    ControlSend,, {%FirstJoyMoveForwardAndZoom% down}, WoT Client
}
return

;;;;;;;;;;;;движение влево/вправо

WatchAxisFirstJoyMoveRotate:
GetKeyState, 1JoyX, 1JoyX
GetKeyState, 1Joy2, 1Joy2
GetKeyState, 1Joy3, 1Joy3
FirstJoyMoveRotatePrev = %FirstJoyMoveRotate%

if 1Joy2 = D
    GoSub, FirstJoyConsumables
if 1Joy3 = D
    GoSub, FirstJoyConsumables
else
if 1JoyX &gt; 75
    FirstJoyMoveRotate = vk44
else if 1JoyX &lt; 25
    FirstJoyMoveRotate = vk41
else
    FirstJoyMoveRotate =

if FirstJoyMoveRotate = %FirstJoyMoveRotatePrev%
return

SetKeyDelay -1
if FirstJoyMoveRotatePrev
{
    ControlSend,, {%FirstJoyMoveRotatePrev% up}, WoT Client
}
if FirstJoyMoveRotate
{
    ControlSend,, {%FirstJoyMoveRotate% down}, WoT Client
}
return

;;;;;;;;;;;;геймпад зум коэфициент

FirstJoyZoomCoef:
GetKeyState, 1JoyY, 1JoyY
FirstJoyZoomCoefPrev = %FirstJoyZoomCoef%

if 1JoyY &lt; 6
    FirstJoyZoomCoef = NumpadDiv
else if 1JoyY between 7 and 12
    FirstJoyZoomCoef = NumpadMult
else if 1JoyY between 13 and 18
    FirstJoyZoomCoef = NumpadSub
else if 1JoyY between 19 and 24
    FirstJoyZoomCoef = NumpadAdd
else if 1JoyY between 25 and 30
    FirstJoyZoomCoef = NumpadDot
else if 1JoyY between 70 and 75
    FirstJoyZoomCoef = NumpadDot
else if 1JoyY between 76 and 81
    FirstJoyZoomCoef = NumpadAdd
else if 1JoyY between 82 and 87
    FirstJoyZoomCoef = NumpadSub
else if 1JoyY between 88 and 93
    FirstJoyZoomCoef = NumpadMult
else if 1JoyY &gt; 94
    FirstJoyZoomCoef = NumpadDiv
else
    FirstJoyZoomCoef =

if FirstJoyZoomCoef = %FirstJoyZoomCoefPrev%
    return

SetKeyDelay -1
if FirstJoyZoomCoefPrev
{
    ControlSend,, {%FirstJoyZoomCoefPrev% up}, WoT Client
}
if FirstJoyZoomCoef
{
    ControlSend,, {%FirstJoyZoomCoef% down}, WoT Client
}
return

;;;;;;;;;;;;меню расходников

FirstJoyConsumables:
FirstJoyConsumablesPrev = %FirstJoyConsumables%

if 1JoyX &lt; 20
    {
    if 1JoyY &lt; 20
    FirstJoyConsumables = vk38
    else if 1JoyY between 40 and 60
    FirstJoyConsumables = vk37
    else if 1JoyY &gt; 80
    FirstJoyConsumables = vk36
    else FirstJoyConsumables =
    }
else if 1JoyX between 40 and 60
    {
    if 1JoyY &lt; 10
    FirstJoyConsumables = vk31
    else if 1JoyY &gt; 90
    FirstJoyConsumables = vk35
    else FirstJoyConsumables =     
    }
else if 1JoyX &gt; 80
    {
    if 1JoyY &lt; 20
    FirstJoyConsumables = vk32
    else if 1JoyY between 40 and 60
    FirstJoyConsumables = vk33
    else if 1JoyY &gt; 80
    FirstJoyConsumables = vk34
    else FirstJoyConsumables =
    }
else FirstJoyConsumables =

if FirstJoyConsumables = %FirstJoyConsumablesPrev%
return

SetKeyDelay -1
if FirstJoyConsumablesPrev
{
    ControlSend,, {%FirstJoyConsumablesPrev% up}, WoT Client 
}
if FirstJoyConsumables
{
    ControlSend,, {%FirstJoyConsumables% down}, WoT Client 
}
return

;;;;;;;;;;;;обзор и мышь


WatchAxisFirstJoyCameraRotate:
GetKeyState, 1JoyU, 1JoyU
GetKeyState, 1JoyR, 1JoyR

if 1JoyU &gt; 50
    DeltaU := 1JoyU - 50
else if 1JoyU &lt; 50
    DeltaU := 1JoyU - 50
else
    DeltaU = 0
if 1JoyR &gt; 50
    DeltaR := 1JoyR - 50
else if 1JoyR &lt; 50
    DeltaR := 1JoyR - 50
else
    DeltaR = 0
if SQRT((ABS(DeltaU)**2)+(ABS(DeltaR)**2)) &gt;= 13
    MouseNeedsToBeMoved := true

SetKeyDelay -1
if MouseNeedsToBeMoved
{
IntX := (DeltaU/60) * (ABS(DeltaU)/60) * (7 + (LT / 35))
IntY := (DeltaR/60) * (ABS(DeltaR)/60) * (7 + (LT / 35))
x := 0
y := 0
if ABS(IntX) &lt;= 1
    {
    PrevX += IntX
    if ABS(PrevX) &gt;= 1
        {
        x := PrevX
        PrevX := 0
        }
    }
else 
    {
    x := IntX
    PrevX := 0
    }
if ABS(IntY) &lt;= 1
    {
    PrevY += IntY
    if ABS(PrevY) &gt;= 1
        {
        y := PrevY
        PrevY :=0
        }
    }
else 
    {
    y := IntY
    PrevY := 0
    }
DllCall(&quot;mouse_event&quot;, uint, 1, int, x, int, y, uint, 0, int, 0)
}
return

;;;;;;;;;;;;выстрел/левая кнопка мыши

FirstJoyShoot:
FirstJoyShootPrev = %FirstJoyShoot%

if RT &gt; 64
    FirstJoyShoot = LButton
else
    FirstJoyShoot =

if FirstJoyShoot = %FirstJoyShootPrev%
    return

SetKeyDelay -1
if FirstJoyShootPrev
{
    Send, {%FirstJoyShootPrev% up} 
}
if FirstJoyShoot
{
    Send, {%FirstJoyShoot% down} 
}
return

;;;;;;;;;;;;;крестовина полный вперед/полный назад/фиксация корпуса/перезарядка кассеты

WatchFirstJoyPOV:
GetKeyState, 1JoyPOV, 1JoyPOV
FirstJoyPOVPrev = %FirstJoyPOV%

if LT &gt; 64
    {
    if 1JoyPOV = 0
        FirstJoyPOV = vkBB
    else if 1JoyPOV = 18000
        FirstJoyPOV = vkBD
    else FirstJoyPOV =
    }
else if 1JoyPOV = 0
    FirstJoyPOV = vk49
else if 1JoyPOV = 18000
    FirstJoyPOV = vk4B
else if 1JoyPOV = 27000
    FirstJoyPOV = vk58
else if 1JoyPOV = 9000
    FirstJoyPOV = vk43
else FirstJoyPOV = 

if FirstJoyPOV = %FirstJoyPOVPrev%
return

SetKeyDelay -1
if FirstJoyPOVPrev
{
    ControlSend,, {%FirstJoyPOVprev% up}, WoT Client
}
if FirstJoyPOV
{
    ControlSend,, {%FirstJoyPOV% down}, WoT Client
}
return

;;;;;;;;;;;;геймпад LShift в активном окне

1Joy10::
{
    ControlSend,, {vkA0 Down}, WoT Client
    KeyWait, 1Joy10
    ControlSend,, {vkA0 Up}, WoT Client
}
return

;;;;;;;;;;;;Короткая остановка для выстрела

1Joy9::
{
    ControlSend,, {Space Down}, WoT Client
    KeyWait, 1Joy9
    ControlSend,, {Space Up}, WoT Client
}
return

;;;;;;;;;;;;выбор снарядов/ремонт двигателя

1Joy1::
if LT &gt; 64
    {
    ControlSend,, {vk34 Down}, WoT Client
    ControlSend,, {vk31 Down}, WoT Client
    KeyWait, 1Joy1
    ControlSend,, {vk31 Up}, WoT Client
    ControlSend,, {vk34 Up}, WoT Client   
    }
else Gosub, FirstSubToggle
Return

FirstSubToggle:
FirstToggle++
If FirstToggle = 1
{
    ControlSend,, {vk31 down}, WoT Client
    Sleep, 10
    ControlSend,, {vk31 up}, WoT Client
    Sleep, 10
    ControlSend,, {vk31 down}, WoT Client
    Sleep, 10
    ControlSend,, {vk31 up}, WoT Client
}
If FirstToggle = 2
{
    ControlSend,, {vk32 down}, WoT Client
    Sleep, 10
    ControlSend,, {vk32 up}, WoT Client
    Sleep, 10
    ControlSend,, {vk32 down}, WoT Client 
    Sleep, 10
    ControlSend,, {vk32 up}, WoT Client
}
If FirstToggle = 3
{
    ControlSend,, {vk33 down}, WoT Client
    Sleep, 10
    ControlSend,, {vk33 up}, WoT Client
    Sleep, 10
    ControlSend,, {vk33 down}, WoT Client
    Sleep, 10
    ControlSend,, {vk33 up}, WoT Client
    FirstToggle = 0
}
return

;;;;;;;;;;;;огнетушитель/ремонт гусениц

1Joy4::
if LT &gt; 64
    {
    ControlSend,, {vk34 Down}, WoT Client
    ControlSend,, {vk35 Down}, WoT Client
    KeyWait, 1Joy4
    ControlSend,, {vk35 Up}, WoT Client
    ControlSend,, {vk34 Up}, WoT Client   
    }
else
    {
    ControlSend,, {vk35 Down}, WoT Client
    KeyWait, 1Joy4
    ControlSend,, {vk35 Up}, WoT Client
    }
return

;;;;;;;;;;;;автоприцел

1Joy6::
{
    Send, {RButton Down}
    KeyWait, 1Joy6
    Send, {RButton up}
}
return

;;;;;;;;;;;;Enter

1Joy8::
{
    ControlSend,, {vk0D Down}, WoT Client
    KeyWait, 1Joy8
    ControlSend,, {vk0D Up}, WoT Client
}
return

;;;;;;;;;;;;Escape

1Joy7::
{
    ControlSend,, {vk1B Down}, WoT Client
    KeyWait, 1Joy7
    ControlSend,, {vk1B Up}, WoT Client    
}
return

;;;;;;;;;;;;меню приказов

1Joy5::
{
    ControlSend,, {vk5A Down}, WoT Client
    KeyWait, 1Joy5
    ControlSend,, {vk5A Up}, WoT Client    
}
return

;;;;;;;;;;;;ремонт/ремонт пушки

1Joy3::
if LT &gt; 64
    {
    ControlSend,, {vk34 Down}, WoT Client
    ControlSend,, {vk33 Down}, WoT Client
    KeyWait, 1Joy3
    ControlSend,, {vk33 Up}, WoT Client
    ControlSend,, {vk34 Up}, WoT Client   
    }
else
    {
    ControlSend,, {vk34 Down}, WoT Client
    KeyWait, 1Joy3
    ControlSend,, {vk34 Up}, WoT Client   
    }
return

;;;;;;;;;;;;лечение/ремонт боеукладки

1Joy2::
if LT &gt; 64
    {
    ControlSend,, {vk34 Down}, WoT Client
    ControlSend,, {vk32 Down}, WoT Client
    KeyWait, 1Joy2
    ControlSend,, {vk32 Up}, WoT Client
    ControlSend,, {vk34 Up}, WoT Client   
    }
else    
    {
    ControlSend,, {vk36 Down}, WoT Client
    KeyWait, 1Joy2
    ControlSend,, {vk36 Up}, WoT Client    
    }
return

;;;;;;;;;;;;проверка активности окна WoT

WatchWindow:
IfWinNotExist, WoT Client
{
ExitApp
}
return

;;;;;;;;;;;;запуск скрипта для игры в SplitScreen

SplitScreen:
IfWinNotExist, [#] WoT Client [#]
return
SetTimer, SplitScreen, Off
Run, %A_WorkingDir%\res_mods\SplitScreen.ahk
return
</code></pre></div></div></div><p>Назначение кнопок скрипта<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_12_2014/post-6899376-0-37737300-1418978697.jpg" alt="http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_12_2014/post-6899376-0-37737300-1418978697.jpg" /></span><br /><span class="postimg"><img src="http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_12_2014/post-6899376-0-10592500-1418978710.jpg" alt="http://cdn-frm-eu.wargaming.net/wot/ru/uploads/monthly_12_2014/post-6899376-0-10592500-1418978710.jpg" /></span></p></div></div>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Sat, 27 Dec 2014 12:27:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89807#p89807</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89805#p89805</link>
			<description><![CDATA[<div class="quotebox"><cite>kharlashkin пишет:</cite><blockquote><div class="codebox"><pre><code>
GetKeyState, 1JoyR, 1JoyR
GetKeyState, 1JoyZ, 1JoyZ

if 1JoyZ &gt; 50
    DeltaZ := 1JoyZ - 50
else if 1JoyZ &lt; 50
    DeltaZ := 1JoyZ - 50
else
    DeltaZ = 0

if 1JoyR &gt; 50
    DeltaR := 1JoyR - 50
else if 1JoyR &lt; 50
    DeltaR := 1JoyR - 50
else
    DeltaR = 0
</code></pre></div></blockquote></div><p>Этот код равноценен этому:<br /></p><div class="codebox"><pre><code>
  DeltaZ:=GetKeyState(&quot;JoyZ&quot;)-50
  DeltaR:=GetKeyState(&quot;JoyR&quot;)-50
</code></pre></div><p>А в остальном все отлично.</p><br /><br /><br /><p>Вот кстати делюсь своими наработками, посмотри может пригодится:<br />Тут переназначение на клавиши, работающие без &quot;зависаний&quot; клавиш.<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="quotebox"><blockquote><p>#SingleInstance,Force<br />AutoTrim,Off<br />CoordMode,Mouse,Screen<br />CoordMode,ToolTip<br />Menu,Tray,UseErrorLevel<br />process,priority,,High<br />SendMode,Input<br />SetBatchLines,-1<br />SetControlDelay,0<br />SetFormat,float,6.0<br />SetKeyDelay,50<br />SetTitleMatchMode,2<br />SetWinDelay,-1<br />SetWorkingDir,%A_ScriptDir%<br />StringCaseSense,On</p><br /><p>loop<br />{<br />&nbsp; sleep,10<br />&nbsp; GetKeyState,JoyY,JoyY<br />&nbsp; if (Joyy&lt;60 and chekY1=&quot;&quot;)&nbsp; ; левый вниз<br />&nbsp; {<br />&nbsp; &nbsp; chekY1=1<br />&nbsp; &nbsp; send,{Down up}<br />&nbsp; }<br />&nbsp; else if (Joyy&gt;80 and chekY1=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekY1=<br />&nbsp; &nbsp; send,{Down down}<br />&nbsp; }</p><p>&nbsp; if (Joyy&gt;40 and chekY2=&quot;&quot;)&nbsp; ; левый вверх<br />&nbsp; {<br />&nbsp; &nbsp; chekY2=1<br />&nbsp; &nbsp; send,{up up}<br />&nbsp; }<br />&nbsp; else if (Joyy&lt;20 and chekY2=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekY2=<br />&nbsp; &nbsp; send,{up down}<br />&nbsp; }</p><p>&nbsp; GetKeyState,JoyX,JoyX<br />&nbsp; if (Joyx&lt;60 and chekX1=&quot;&quot;)&nbsp; ; левый вправо<br />&nbsp; {<br />&nbsp; &nbsp; chekX1=1<br />&nbsp; &nbsp; send,{right up}<br />&nbsp; }<br />&nbsp; else if (Joyx&gt;80 and chekX1=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekX1=<br />&nbsp; &nbsp; send,{right down}<br />&nbsp; }</p><p>&nbsp; if (Joyx&gt;40 and chekX2=&quot;&quot;)&nbsp; ; левый влево<br />&nbsp; {<br />&nbsp; &nbsp; chekX2=1<br />&nbsp; &nbsp; send,{left up}<br />&nbsp; }<br />&nbsp; else if (Joyx&lt;20 and chekX2=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekX2=<br />&nbsp; &nbsp; send,{left down}<br />&nbsp; }</p><p>&nbsp; GetKeyState,JoyR,JoyR<br />&nbsp; if (Joyr&gt;40 and Joyr&lt;60 and chekR=&quot;&quot;)&nbsp; ; правый верх низ<br />&nbsp; {<br />&nbsp; &nbsp; chekR=1<br />&nbsp; &nbsp; send,{numpad2 up}{numpad8 up}<br />&nbsp; }<br />&nbsp; else if (Joyr&gt;80 and chekR=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekR=<br />&nbsp; &nbsp; send,{numpad2 down}<br />&nbsp; }<br />&nbsp; else if (Joyr&lt;20 and chekR=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekR=<br />&nbsp; &nbsp; send,{numpad8 down}<br />&nbsp; }</p><p>&nbsp; GetKeyState,JoyZ,JoyZ<br />&nbsp; if (Joyz&gt;40 and Joyz&lt;60 and chekZ=&quot;&quot;)&nbsp; ; правый лево право<br />&nbsp; {<br />&nbsp; &nbsp; chekZ=1<br />&nbsp; &nbsp; send,{numpad4 up}{numpad6 up}<br />&nbsp; }<br />&nbsp; else if (Joyz&gt;80 and chekZ=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekZ=<br />&nbsp; &nbsp; send,{numpad6 down}<br />&nbsp; }<br />&nbsp; else if (Joyz&lt;20 and chekZ=1)<br />&nbsp; {<br />&nbsp; &nbsp; chekZ=<br />&nbsp; &nbsp; send,{numpad4 down}<br />&nbsp; }</p><br /><p>&nbsp; if (!GetKeyState(&quot;Joy1&quot;) and Joy1=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy1=<br />&nbsp; &nbsp; send {alt up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy2&quot;) and Joy2=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy2=<br />&nbsp; &nbsp; send {space up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy3&quot;) and Joy3=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy3=<br />&nbsp; &nbsp; send {ctrl up}<br />&nbsp; }<br />;&nbsp; else if GetKeyState(&quot;Joy3&quot;)<br />;&nbsp; {<br />;&nbsp; &nbsp; send {ctrl down}<br />;&nbsp; &nbsp; sleep,50<br />;&nbsp; &nbsp; send {ctrl up}<br />;&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy4&quot;) and Joy4=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy4=<br />&nbsp; &nbsp; send {up up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy5&quot;) and Joy5=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy5=<br />&nbsp; &nbsp; send {shift up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy6&quot;) and Joy6=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy6=<br />&nbsp; &nbsp; send {vk5a up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy7&quot;) and Joy7=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy7=<br />&nbsp; &nbsp; send {f2 up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy8&quot;) and Joy8=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy8=<br />&nbsp; &nbsp; send {}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy9&quot;) and Joy9=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy9=<br />&nbsp; &nbsp; send {esc up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy10&quot;) and Joy10=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy10=<br />&nbsp; &nbsp; send {enter up}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy11&quot;) and Joy11=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy11=<br />&nbsp; &nbsp; send {}<br />&nbsp; }<br />&nbsp; if (!GetKeyState(&quot;Joy12&quot;) and Joy12=1)<br />&nbsp; {<br />&nbsp; &nbsp; Joy12=<br />&nbsp; &nbsp; send {}<br />&nbsp; }<br />}<br />return</p><p>joy1::<br />joy1=1<br />send,{alt down}<br />return</p><p>joy2::<br />joy2=1<br />send,{space down}<br />return</p><p>joy3::<br />joy3=1<br />send,{ctrl down}<br />return</p><p>joy4::<br />joy4=1<br />send,{up down}<br />return</p><p>joy5::<br />joy5=1<br />send,{shift down}<br />return</p><p>joy6::<br />joy6=1<br />send,{vk5a down}<br />return</p><p>joy7::<br />joy7=1<br />send,{f2 down}<br />return</p><p>joy8::<br />joy8=1<br />return</p><p>joy9::<br />joy9=1<br />send,{esc down}<br />return</p><p>joy10::<br />joy10=1<br />send,{enter down}<br />return</p><p>joy11::<br />joy11=1<br />return</p><p>joy12::<br />joy12=1<br />return</p></blockquote></div></div></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 27 Dec 2014 10:28:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89805#p89805</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89804#p89804</link>
			<description><![CDATA[<p>Прошу критиковать скрипт обоснованно, если в течении недельки движений по теме не будет, буду закрывать.</p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Sat, 27 Dec 2014 08:00:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89804#p89804</guid>
		</item>
		<item>
			<title><![CDATA[Re: Перемещения мыши в игре геймпадом [Решено]]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=89770#p89770</link>
			<description><![CDATA[<p>Отчитаюсь:<br />1. Гугление ни к чему интересному не привело.<br />2. Спасибо за скрипты подтолкнули к 2-м очень правильным вещам: использовать вместо перемещений мыши ToolTip (чтобы не &quot;на глазок&quot; определять, а реальными данными) и операцию &quot;+=&quot;. Используя документацию вот что получилось:<br /></p><div class="codebox"><pre><code>#Persistent
SetTimer, WatchAxisFirstJoyCameraRotate, 5

WatchAxisFirstJoyCameraRotate:
MouseNeedsToBeMoved := false
GetKeyState, 1Joy7, 1Joy7
GetKeyState, 1JoyR, 1JoyR
GetKeyState, 1JoyZ, 1JoyZ

if 1Joy7 = D
    JoyMultiplier = 15
else JoyMultiplier = 10

if 1JoyZ &gt; 50
    DeltaZ := 1JoyZ - 50
else if 1JoyZ &lt; 50
    DeltaZ := 1JoyZ - 50
else
    DeltaZ = 0

if 1JoyR &gt; 50
    DeltaR := 1JoyR - 50
else if 1JoyR &lt; 50
    DeltaR := 1JoyR - 50
else
    DeltaR = 0

if SQRT((ABS(DeltaZ)**2)+(ABS(DeltaR)**2)) &gt;= 1
    MouseNeedsToBeMoved := true

SetKeyDelay -1
if MouseNeedsToBeMoved
{
IntX :=    (DeltaZ/60) * (ABS(DeltaZ)/60) * JoyMultiplier
IntY := (DeltaR/60) * (ABS(DeltaR)/60) * JoyMultiplier
x := 0
y := 0
if ABS(IntX) &lt;= 1
    {
    PrevX += IntX
    if ABS(PrevX) &gt;= 1
    {
    x := PrevX
    PrevX := 0
    }
    }
else 
    {
    x := IntX
    PrevX := 0
    }
if ABS(IntY) &lt;= 1
    {
    PrevY += IntY
    if ABS(PrevY) &gt;= 1
    {
    y := PrevY
    PrevY :=0
    }
    }
else 
    {
    y := IntY
    PrevY := 0
    }
DllCall(&quot;mouse_event&quot;, uint, 1, int, x, int, y, uint, 0, int, 0)
}
return</code></pre></div><p>Разумеется вместо DllCall сначала был ToolTip, %x% %y% %IntX% %IntY% %PrevX% %PrevY%. Теперь вроде все работает как нужно.</p>]]></description>
			<author><![CDATA[null@example.com (kharlashkin)]]></author>
			<pubDate>Thu, 25 Dec 2014 10:30:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=89770#p89770</guid>
		</item>
	</channel>
</rss>
