<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15950&amp;type=atom" />
	<updated>2020-12-27T12:58:34Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15950</id>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144380#p144380" />
			<content type="html"><![CDATA[<p><strong>__Михаил__</strong> огромное вам спасибо!</p>]]></content>
			<author>
				<name><![CDATA[NerasW]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41321</uri>
			</author>
			<updated>2020-12-27T12:58:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144380#p144380</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144376#p144376" />
			<content type="html"><![CDATA[<p>Очень советую почитать <a href="https://ahk-wiki.ru/ifwinactive">IfWinActive / IfWinNotActive</a>. Там есть примеры.</p><p>Если нужно включать и выключать по кнопке - можно использовать проверку переменной и активацию участка кода.</p><p>Вот способ активации перехвата по F2. Смещённое нажатие цифр:</p><div class="codebox"><pre><code>SW := 0		; Флаг перехвата клавиш (0:выкл. 1:вкл.)

; Установить хук на клавиши, по умолчанию выключен перехват.
KeySet:		; Метка для дальнейшего вызова:
Loop, 9
 Hotkey, % &quot;$&quot; A_Index, KSend, % (SW ? &quot;On&quot; : &quot;Off&quot;), UseErrorLevel
Hotkey, $0, KSend, % (SW ? &quot;On&quot; : &quot;Off&quot;), UseErrorLevel	; Клавишу 0 отдельно (в цикле не выйдет - 10 кнопки не существует).
Return


;Метка, которая выполняет посылку нажатий:
KSend:
Key := SubStr(A_ThisHotkey, 2)	; Извлечь 2 символ, т.е. саму клавишу, которая запустила метку.	
KeyWait, %Key%, U	; Ожидать отпуск клавиши.

I := Key &gt; 4 ? Key-5 : Key+5
SendInput, % I
Tool(&quot;Key: &quot; Key &quot;`nI: &quot; I,,0,0)
Return

F2::
SW := !SW	; Поменять значение (0=1 / 1=0).
GoTo, KeySet	; Запустить метку, которая переключит перехват клавиш.
Return



;05:44 19.07.2020 ToolTip на время:
; Wait = таймер если != 0, иначе ожидает отжатия клавиши.

Tool(Text, Wait := 1000, X := &quot;&quot;, Y := &quot;&quot;)
{
 SetTimer, T_Off, Off
 ToolTip, % Text, %X%, %Y%

 If Wait
  SetTimer, T_Off, % Wait
 Else
 {
  KeyWait, %A_ThisHotkey%, U
  ToolTip
 }
}


T_Off:
SetTimer, T_Off, Off
ToolTip
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-12-26T22:50:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144376#p144376</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144375#p144375" />
			<content type="html"><![CDATA[<p><strong>NerasW</strong></p><p>Можно так определить.</p><div class="codebox"><pre><code>F2::
GoSub, фокус
Txt := &quot;Название: &quot; Title &quot;`nКласс: &quot; Class &quot;`nКонтрол: &quot; Control &quot;`nID: &quot; ID
ToolTip, % Txt		; Отобразить инфу
ClipBoard := Txt	; Сохранить инфу в буфер.
Return

фокус:	; Получить информацию о текущем окне:
MouseGetPos,,,ID, Control		; Получаем ID окна и Контрол.
WinGetClass, Class, Ahk_ID %ID%		; Получаем класс.
WinGetTitle, Title, Ahk_ID %ID%		; Получаем титул (имя / название).
WinActivate, Ahk_ID %ID%		; Активируем окно по ID.
Return

~Esc::	ToolTip	; Убрать ToolTip, чтобы не мешало.</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-12-26T22:10:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144375#p144375</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144373#p144373" />
			<content type="html"><![CDATA[<p><strong>__Михаил__</strong><br />Легче, только не понял, как заполнять Класс_игры и тд, нужно ли писать путь к игре в названии, или нужно название окна? 1 сутки изучаю AHK, поэтому если можно приведите пример.<br />Также замечу, что основной вопрос меня интересует чтобы понять принцип. Я видел, что такие примеры реализуемы, но либо через цвет пикселя, либо по другим триггерам и адаптировать я их не смог под свой вариант.</p>]]></content>
			<author>
				<name><![CDATA[NerasW]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41321</uri>
			</author>
			<updated>2020-12-26T20:48:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144373#p144373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144364#p144364" />
			<content type="html"><![CDATA[<p>Не легче ли использовать такой вариант, когда скрипт просто переназначает клавиши строго в этой игре, всегда и без какой либо лишней команды? Я так пользуюсь.</p><div class="codebox"><pre><code>#IfWinActive, Название_игры ahk_class Класс_игры

1::6
2::7
3::8
4::9
5::0
6::1
7::2
8::3
9::4
0::5

#If</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2020-12-26T16:49:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144364#p144364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144363#p144363" />
			<content type="html"><![CDATA[<p>Промежуточный результат:<br /></p><div class="codebox"><pre><code>; Скрипт доведен до ума
; запускает/закрывает скрипт, меняющий клавиши: 1..5 на 6..0, 6..0 на 1..5 местами, по нажатию клавиши смены режима

SW := 0							; Флаг режима 0-выключен, 1-включен (менять не нужно)

F2::							; F2 - Клавиша смены режима

If (SW &lt; 1)						; Проверяем флаг на запуск скрипта смены клавиш
{
 SW := 1						; Меняем флаг
 ToolTip, changed keys:`n1 . . 5`t-&gt;      6 . . 0`n6 . . 0`t-&gt;      1 . . 5	; Отобразить подсказку, накидал пробелов вместо таб, т.к. по одному таб с каждой стороны от -&gt; отображалось не симметрично
run D:\AHK\123.ahk				; Запускаем скрипт по смене клавиш
Else							; Закрывает скрипт смены клавиш, делая их снова стандартными
{
 SW := 0						; Меняем флаг
 ToolTip, Keys set to normal	; Отобразить подсказку
ScriptFileName := &quot;123.ahk&quot;  	; написать название файла целевого скрипта для закрытия
SetTitleMatchMode, 2
DetectHiddenWindows, On
WinClose, % ScriptFileName &quot; ahk_class AutoHotkey&quot;	; Выключаем скрипт по смене клавиш
}
Sleep, 3000
ToolTip
Return</code></pre></div><p>Скрипт запускает следующий:<br /></p><div class="codebox"><pre><code>; Скрипт по смене кнопок  
	1::6
	2::7
	3::8
	4::9
	5::0
	6::1
	7::2
	8::3
	9::4
	0::5</code></pre></div><p>На данном этапе у меня 2 вопроса: как сделать одним файлом (изначальный вопрос), и как при привязке макроса к Numlock, а не F2, эмитировать его реальное нажатие, для напоминания через светодиод (да и по фану просто)?</p>]]></content>
			<author>
				<name><![CDATA[NerasW]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41321</uri>
			</author>
			<updated>2020-12-26T15:49:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144363#p144363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Помогите довести ПЕРЕКЛЮЧАЕМЫЙ СКРИП ПО ЗАМЕНЕ КНОПОК до ума.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=144361#p144361" />
			<content type="html"><![CDATA[<p>Всем доброго времени суток. Прошу помочь мне в написании скрипта.<br />Игра - Sacred - старая бинды менять нельзя.<br />Необходимо поменять местами кнопки от 1 до 5 с кнопками 6 - 0. То есть 1-&gt;6, 2-&gt;7, 3-&gt;8, 4-&gt;9, 5-&gt;0, 6-&gt;1, 7-&gt;2, 8-&gt;3, 9-&gt;2, 0-&gt;1. Переключение должно происходить после нажатия на кнопку (например F2; или numlock, чтобы по включенному светодиоду знать когда вкл режим перестановки), при повторном нажатии выключать режим перестановки.</p><p>&quot;Своими&quot; усилиями из костылей был собран код, работает только 1-&gt;6, 2-&gt;7, 3-&gt;8, 4-&gt;9, 5-&gt;0 при попытках добавить 6-&gt;1, 7-&gt;2, 8-&gt;3, 9-&gt;2, 0-&gt;1 не работает вообще, что и не мудрено. 1::6 6::1 и тд работает прекрасно, но без подключения хуков не могу добавить кнопку переключения, а она нужна.</p><br /><p>Сам код(неработающие участки закоменчены):<br /></p><div class="codebox"><pre><code>SW := 0		; Флаг режима 0-выключен, 1-включен
F2::		; F2 - Клавиша смены режима:
If (SW &lt; 1)	; Меняет кнопки: 1..5 на 6..0, 6..0 на 1..5
{
 SW := 1		; Меняем флаг
 ToolTip, changed keys:`n1`t-&gt;`t6`n2`t-&gt;`t7`n3`t-&gt;`t8`n4`t-&gt;`t9`n5`t-&gt;`t0 ; `n6`t-&gt;`t1`n7`t-&gt;`t2`n8`t-&gt;`t3`n9`t-&gt;`t4`n0`t-&gt;`t5
 Hotkey, 1, 1_6	; Назначаем хук (перехват) клавиши 1
 Hotkey, 1, On	; Включаем его
 Hotkey, 2, 2_7	; Назначаем хук (перехват) клавиши 2
 Hotkey, 2, On	; Включаем его
 Hotkey, 3, 3_8	; Назначаем хук (перехват) клавиши 3
 Hotkey, 3, On	; Включаем его
 Hotkey, 4, 4_9	; Назначаем хук (перехват) клавиши 4
 Hotkey, 4, On	; Включаем его 
 Hotkey, 5, 5_0	; Назначаем хук (перехват) клавиши 5
 Hotkey, 5, On	; Включаем его
; Hotkey, 6, 6_1	; Назначаем хук (перехват) клавиши 6
; Hotkey, 6, On	; Включаем его
; Hotkey, 7, 7_2	; Назначаем хук (перехват) клавиши 7
; Hotkey, 7, On	; Включаем его
; Hotkey, 8, 8_3	; Назначаем хук (перехват) клавиши 8
; Hotkey, 8, On	; Включаем его
; Hotkey, 9, 9_4	; Назначаем хук (перехват) клавиши 9
; Hotkey, 9, On	; Включаем его
; Hotkey, 0, 0_5	; Назначаем хук (перехват) клавиши 0
; Hotkey, 0, On			; Включаем его
}
Else	; Выключает хук кнопок, делая их снова стандартными.
{
 SW := 0				; Меняем флаг
 ToolTip, Keys set to normal	
 Hotkey, 1, Off	; Выключаем хук 1
 Hotkey, 2, Off	; Выключаем хук 2
 Hotkey, 3, Off	; Выключаем хук 3
 Hotkey, 4, Off	; Выключаем хук 4
 Hotkey, 5, Off	; Выключаем хук 5
; Hotkey, 6, Off	; Выключаем хук 6
; Hotkey, 7, Off	; Выключаем хук 7
; Hotkey, 8, Off	; Выключаем хук 8
; Hotkey, 9, Off	; Выключаем хук 9
; Hotkey, 0, Off	; Выключаем хук 0
}
Sleep, 2000
ToolTip
Return


1_6:
Send, 6
Return

2_7:
Send, 7
Return

3_8:
Send, 8
Return

4_9:
Send, 9
Return

5_0:
Send, 0
Return

6_1:
Send, 1
Return

;7_2:
;Send, 2
;Return

;8_3:
;Send, 3
;Return

;9_4:
;Send, 4
;Return

;0_5:
;Send, 5
;Return</code></pre></div><p>Прошу помочь, стало уже делом принципа победить данную проблему, сам разобраться с AHK не могу.</p>]]></content>
			<author>
				<name><![CDATA[NerasW]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41321</uri>
			</author>
			<updated>2020-12-26T14:19:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=144361#p144361</id>
		</entry>
</feed>
