<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6981</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6981&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов».]]></description>
		<lastBuildDate>Fri, 23 Mar 2012 16:30:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58302#p58302</link>
			<description><![CDATA[<p><strong>MAGISTR</strong> как просил сделал для себя, но ты меня с подвигнул... я бы долго собирался. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>1. Убрано то что тебе не нужно.<br />2. Обработка только одной оси и одного направления джойстика, остальное пишется по аналогии. </p><div class="codebox"><pre><code>#SingleInstance
#Persistent

JoystickNumber := 1

;---Граничные условия
JoyZoneUp := 25
JoyZoneDn := 100 - JoyZoneUp

;---Флаги Left Right Up Down стрелок 
; Истина - кнопка не нажата
flagL := true
flagR := true
flagU := true 
flagD := true

;********Отладочные переменные
countUP := 0
countDN := 0
;********


SetTimer, LeftJoystick, 10

return


;==========Секция таймера=================
LeftJoystick:
SetFormat, float, 03
GetKeyState, JoyX, %JoystickNumber%JoyX

;--------ОТЛАДКА---------
; Alert Exit! =) 
GetKeyState, state, %JoystickNumber%Joy1  ; Первая кнопка джойстика.
if (state = &quot;D&quot;)
 ExitApp
;------------------------- 

;*********Стрелка LEFT
if (JoyX &lt; JoyZoneUp and  flagL) 
 {
  countDN++  ;&lt;----Для отладки (убрать)
  ToolTip  Нажали = %countDN% ;&lt;----Для отладки (убрать)
  ;Send, {Left Down} после проверки раз комментировать
  flagL := false
 }
else if (JoyX &gt; JoyZoneUp and !flagL) 
 {
  countUP++ ;&lt;----Для отладки (убрать)
  ToolTip  Отжали = %countUP%  ;&lt;----Для отладки (убрать)
  ;Send, {Left Up} после проверки раз комментировать
  flagL := true
 }
;*********
return
;================================</code></pre></div><p>Функция автоповтора не реализована, но если она требуется, то могу и её сделать в режиме On/Off по произвольной клавише.</p><p>Удачного полёта <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p><p>P.S. Секция аварийного выхода </p><div class="codebox"><pre><code>;--------ОТЛАДКА---------
; Alert Exit! =) 
GetKeyState, state, %JoystickNumber%Joy1  ; Первая кнопка джойстика.
if (state = &quot;D&quot;)
 ExitApp
;-------------------------</code></pre></div><p>сделана для того что бы ты не мучался с подвисанием, ну а вместо первой кнопки джойстика можно использовать любую кнопку на клавиатуре или мышке.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Fri, 23 Mar 2012 16:30:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58302#p58302</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58271#p58271</link>
			<description><![CDATA[<p>Тогда зайди на форум &quot;Сухого&quot; там ребята много что делают в области переделки джойстиков (на уровне железа)</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 19:02:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58271#p58271</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58269#p58269</link>
			<description><![CDATA[<p>Бесполезно. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> Кстати, открытие чего либо по двойному клику левой кнопкой мыши тоже не работает. Просто нет реакции. Ну и зависание курсора при попытке закрыть или свернуть браузер мышкой. Я уж подумываю разобрать эти педали и заменить резисторы на переключатели такого же типа и вставить туда схему от клавиатуры, как <a href="http://www.youtube.com/watch?v=a3NxQ60E72k&amp;feature=player_embedded">здесь</a> например. <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 18:56:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58269#p58269</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58266#p58266</link>
			<description><![CDATA[<p>Попробуй так, я добавил флаг - переменная FlagY<br /></p><div class="codebox"><pre><code>#SingleInstance
#Persistent
 
JoystickNumber := 1
JoyZone := 20

; &quot;+1&quot; добавлен из-за сравнения &quot;больше&quot;, если поставить &quot;больше или равно&quot; то &quot;+1&quot; не нужен
JoyZoneY := 100 - JoyZone + 1
FlagY := false

SetTimer, Joystick, 10

 
Joystick:
SetFormat, float, 03
GetKeyState, JoyX, %JoystickNumber%JoyX ; не обязательно, если нет обработки X-оси.
GetKeyState, JoyY, %JoystickNumber%JoyY

if JoyY &gt; %JoyZoneY% and FlagY
 {
 SendPlay {- Down}
 FlagY := false 
 }

if JoyY &lt; %JoyZoneY% and !FlagY
 {
 SendPlay {- Up}
 FlagY := true
 }
return</code></pre></div><p>Вроде правильно - не проверял, но думаю общая идея ясна</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 17:15:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58266#p58266</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58260#p58260</link>
			<description><![CDATA[<p>Скорость повтора была громадная при простейшем бинде кнопки на ось.<br />If (JY &gt; 050)<br />Send {-}</p><p>При этом варианте всё великолепно работало за исключением одного неприятного момента: индикаторы, которые забиндены в приложении на &quot;-&quot; мигали с такой скоростью, что становились просто невидимыми.</p><p>«Ну надо проверять когда срабатывает секция (используй отладочные точки)» — Из этого предложения ничего не понял, поэтому постараюсь дождаться этого: «Буду делать аналогичное - скажу». В любом случае спасибо. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 16:26:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58260#p58260</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58256#p58256</link>
			<description><![CDATA[<p>Ну надо проверять когда срабатывает секция (используй отладочные точки)</p><p>Joystick:</p><p>......</p><p>return</p><p>Буду делать аналогичное - скажу, правда я не на ось буду вешать, а на кнопки джойстика, но думаю принцип будет тот же.</p><p>P.S. У меня &quot;курсор замирал намертво&quot; при большой скорости повтора - попробуй покапать в этом направлении и также если клавиша нажата, то не надо её повторно нажимать, ну как и отжимать.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 14:59:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58256#p58256</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58255#p58255</link>
			<description><![CDATA[<p>Indomito, благодарю! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Хм, правда здесь происходит та же самая аномалия:</p><div class="quotebox"><blockquote><p>Но начались странные аномалии, сводящие на нет любые преимущества. Все клавиши начали срабатывать с задержкой, модификаторы работают, но странно. Например Alt+Shift перестал переключать раскладку клавиатуры, а при попытке свернуть браузер левой кнопкой мыши курсор виснет на одном месте и отказывается двигаться, оживая только после Alt+Tab, который работает. Тем не менее в игре Alt+Shift работает (хотя все клавиши, как я уже говорил, работают с задержкой). Мистика. %)</p></blockquote></div><p>Курсор также намертво зависает при попытке закрыть окно нажатием на крестик. Оживает также по Alt+Tab. На Alt стоит автоповтор с огромной скоростью. То есть она не зажимается, но при этом Alt+Tab работает.&nbsp; Хм. И это не во всех окнах происходит. Что это вообще может быть?</p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 14:54:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58255#p58255</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58247#p58247</link>
			<description><![CDATA[<p>Да, сейчас её подредактирую...</p><p>Приблизительно так: </p><div class="codebox"><pre><code>#SingleInstance
#Persistent
 
JoystickNumber := 1
JoyZone := 20

; &quot;+1&quot; добавлен из-за сравнения &quot;больше&quot;, если поставить &quot;больше или равно&quot; то &quot;+1&quot; не нужен
JoyZoneY := 100 - JoyZone + 1
 
SetTimer, Joystick, 10

 
Joystick:
SetFormat, float, 03
GetKeyState, JoyX, %JoystickNumber%JoyX ; не обязательно, если нет обработки X-оси.
GetKeyState, JoyY, %JoystickNumber%JoyY

if JoyY &gt; %JoyZoneY%
 SendPlay {- Down}
else
 SendPlay {- Up}

return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 13:32:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58247#p58247</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58246#p58246</link>
			<description><![CDATA[<p>Это вписать в конец той большой конструкции?</p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 13:12:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58246#p58246</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58242#p58242</link>
			<description><![CDATA[<div class="codebox"><pre><code>if y&gt;81
 Send, {- Down}
if y&lt;79
 Send, {- Up}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 12:34:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58242#p58242</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58237#p58237</link>
			<description><![CDATA[<p>Я извиняюсь если буду говорить глупости, просто впервые поставил AutoHotkey несколько дней назад и знаю лишь простейшие вещи. У меня руль с педалями. От него интересуют только педали. JoystickTest.ahk показывает что педали это ось Y. Если обе педали отпущены, то Y = 050. Если нажимать левую, то этот показатель плавно увеличивается от 050 до 100, а если правую, то падает до Y000. Задачей является повесить клавишу &quot;-&quot; на нажатие левой педали, то есть возрастание Y от 050 до 100. Например от Y080 до Y100 — клавиша нажата. Всё что меньше Y080 —&nbsp; клавиша отпущена. При нажатии этой клавиши клавиатура и мышь должны работать в самом обычном режиме, как если бы я нажимал &quot;-&quot; на клавиатуре. То есть без каких либо глюков с модификаторами и общих задержек клавиш. Вроде кое-как настроил эту конструкцию под нажатие &quot;-&quot;, но опять те же самые глюки с курсором, задержками и т.п. Отчаяние. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 12:19:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58237#p58237</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58231#p58231</link>
			<description><![CDATA[<p>Попробуй вместо цикла использовать такую конструкцию.<br /></p><div class="codebox"><pre><code>#SingleInstance
#Persistent

JoystickNumber := 1
SetTimer, RightJoystick, 10  ; Для JoyX  и JoyY осей
SetTimer, LeftJoystick, 10  ; Для JoyZ  и JoyR осей

RightJoystick:
SetFormat, float, 03
GetKeyState, JoyX, %JoystickNumber%JoyX
GetKeyState, JoyY, %JoystickNumber%JoyY
; код обработки
return

LeftJoystick:
; аналогично RightJoystick:
return</code></pre></div><p>и не забудь контролировать диапозон, ну скажем так например </p><div class="codebox"><pre><code>JoystickNumber := 1
JoyZoneUp := 25
JoyZoneDn := 100 - JoyZoneUp
SetTimer, LeftJoystick, 10  ; Для JoyZ  и JoyR осей

LeftJoystick:
SetFormat, float, 03
GetKeyState, JoyX, %JoystickNumber%JoyX
GetKeyState, JoyY, %JoystickNumber%JoyY
{
OutJoyXY := &quot;JoyX= &quot; JoyX &quot;,  JoyY= &quot; JoyY ; Отладка
ToolTip  %OutJoyXY% ; Отладка
}
if JoyX &lt; %JoyZoneUp%
 {
 SendPlay {Left}
 }
if JoyX &gt; %JoyZoneDn%
 {
 SendPlay {Right}
 }
if JoyY &lt; %JoyZoneUp%
 {
 SendPlay {Up}
 }
if JoyY &gt; %JoyZoneDn%
 {
 SendPlay {Down}
 } 
return</code></pre></div><p>т.е. джойстику нужна мёртвая зона около &quot;нуля&quot; иначе он будет работать всегда, т.к. оси сделаны на резисторах, если у тебя конечно не Saitek последних моделей начиная с X52/X52 Pro.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 11:09:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58231#p58231</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58229#p58229</link>
			<description><![CDATA[<p>В конце концов сработал вот этот вариант:</p><div class="codebox"><pre><code>Loop
{
GetKeyState, YJ, JoyY
If (YJ &gt; 077)
SendPlay {Blind}{- down}
If (YJ &lt; 077)
SendPlay {Blind}{- up}
}</code></pre></div><p>Но начались странные аномалии, сводящие на нет любые преимущества. Все клавиши начали срабатывать с задержкой, модификаторы работают, но странно. Например Alt+Shift перестал переключать раскладку клавиатуры, а при попытке свернуть браузер левой кнопкой мыши курсор виснет на одном месте и отказывается двигаться, оживая только после Alt+Tab, который работает. Тем не менее в игре Alt+Shift работает (хотя все клавиши, как я уже говорил, работают с задержкой). Мистика. %)</p>]]></description>
			<author><![CDATA[null@example.com (MAGISTR)]]></author>
			<pubDate>Thu, 22 Mar 2012 11:00:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58229#p58229</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58227#p58227</link>
			<description><![CDATA[<p><strong>Indomito</strong>, извините, не смогу поддержать ваши размышления ответной репликой.</p>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Thu, 22 Mar 2012 10:36:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58227#p58227</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Бинд клавиши на JoyY — отказ клавиш-модификаторов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=58221#p58221</link>
			<description><![CDATA[<p>Не понял а зачем <strong>GetKeyState, YJ, JoyY</strong> это же проверка оси, а не клавиши или я чего то недопонимаю? <br />Или же просто что ось, что кнопка - без разницы?</p><p>И ещё как проще опрашивать по таймеру или же можно как обычную кнопку на клавиатуре?</p><p>P.S. Просто фокус с осью не пройдёт, а вот судя по справке можно использовать второй вариант(как обычную кнопку на клавиатуре), правда я не уверен.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Thu, 22 Mar 2012 09:54:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=58221#p58221</guid>
		</item>
	</channel>
</rss>
