<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11906&amp;type=atom" />
	<updated>2016-08-17T13:47:10Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11906</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106847#p106847" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, я что-то упустил? <br /></p><div class="codebox"><pre><code>; * нужна, чтобы Space вызывалась / не вызывалась в сочетаниях с модификаторами,
; например Shift+Apps (расширенное контекстное меню в проводнике).
*Space::Return  ; Нажатие клавиши будет посылаться в момент ее отжатияия,
*Space Up::
	If A_PriorKey=&quot;Space&quot;  ; если в период м/у ее зажатием и отпусканием не были нажаты какие-либо еще клавиши.
		Send {Blind}{Space}  ; Blind сохраняет зажатые клавиши зажатыми.
	; Например, без этой опции вместо при нажатии Shift+Apps будет послано просто Apps.
	Return

; Теперь можно создавать слой действий клавиш с нашим новым модификатором Space:
#If GetKeyState(&quot;Space&quot;, &quot;P&quot;)
	j::1
	k::2
	l::3
#If
$Esc::ExitApp</code></pre></div><p>Win 7 SP1 <br />AHK 1.1.24.00</p>]]></content>
			<author>
				<name><![CDATA[sd7962]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34089</uri>
			</author>
			<updated>2016-08-17T13:47:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106847#p106847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106836#p106836" />
			<content type="html"><![CDATA[<p><strong>sd7962</strong>, заменить надо все вхождения <span style="color: red">AppsKey</span>(их 5 в первом примере), думал это очевидно.<br />Ниже упущены скобки в условии If, из-за чего пробел не работает.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2016-08-16T18:21:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106836#p106836</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106816#p106816" />
			<content type="html"><![CDATA[<p>Спасибо, все понятно!</p><div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Вместо AppsKey ставите Space в первом примере.</p></blockquote></div><p>В первом примере пробел как пробел не работает, вероятно из-за:<br /></p><div class="codebox"><pre><code>*AppsKey::Return</code></pre></div><p>Вроде он блокируется этой командой...</p><p>Второй пример отлично подошел в качестве замены первого <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Кстати, дополнительный слой оказалось можно подключить с помощью добавления буквы в комбинацию к пробелу, чему я безумно рад:<br /></p><div class="codebox"><pre><code>...
#If GetKeyState(&quot;Space&quot;, &quot;P&quot;)
	j::4
	A &amp; j:: Send, = 
#If
...</code></pre></div><p>Таким образом можно достаточное количество слоев понаделать. Главное, чтобы глючить не начало...</p>]]></content>
			<author>
				<name><![CDATA[sd7962]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34089</uri>
			</author>
			<updated>2016-08-15T21:14:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106816#p106816</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106805#p106805" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sd7962 пишет:</cite><blockquote><p> Можно ли сделать, чтобы пробел работал как пробел только по отжатии и только в том случае, если в период его нажатого состояния не было нажато ничего другого.</p></blockquote></div><p>Такой вариант с костылём, простой для понимания.</p><div class="codebox"><pre><code>#If GetKeyState(&quot;Space&quot;, &quot;P&quot;)
j::
Send, 4
state := 1
Return
#If

Space:: state := 0 
 
#If state = 0
Space Up:: Send {Space}
#If    </code></pre></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-08-15T15:06:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106805#p106805</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106800#p106800" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?id=11195">Об использовании произвольных клавиш в качестве модификаторов</a><br />Вместо AppsKey ставите Space в первом примере.<br />Если захотите еще Ctrl+Space или Shift+Space вдобавок к Space+Ctrl и Space+Shift смотрите последний пример.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2016-08-15T14:46:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106800#p106800</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106780#p106780" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong><br />Спасибо огромное! все работает на ура </p><p>Есть маленький вопрос. В варианте с пробелом. Можно ли сделать, чтобы пробел работал как пробел только по отжатии и только в том случае, если в период его нажатого состояния не было нажато ничего другого. </p><p>Например, <br />0. Зажал пробел и держишь - ничего не печатается. <br />1. нажал и отжал пробел (задержка не важна, кроме пробела ничего не нажималось) - сработал пробел<br />2. Нажал пробел, нажал J, отжал пробел - напечаталась только 4</p>]]></content>
			<author>
				<name><![CDATA[sd7962]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34089</uri>
			</author>
			<updated>2016-08-15T13:17:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106780#p106780</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106773#p106773" />
			<content type="html"><![CDATA[<p>Пока вот два простых примера. С пробелом:<br /></p><div class="codebox"><pre><code>#If GetKeyState(&quot;Space&quot;, &quot;P&quot;)
j::4
#If
</code></pre></div><p>Вариант с правым Alt, по-моему удобнее:<br /></p><div class="codebox"><pre><code>#If state = 1
j::4
#If

RAlt::
If state = 1
state := 0
Else state = 1
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-08-15T11:53:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106773#p106773</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: новый слой (раскладка) при зажатом модификаторе]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106770#p106770" />
			<content type="html"><![CDATA[<p>Добрый день!</p><p>Подскажите, пожалуйста, можно ли (и как) сделать так, чтобы, например, при зажатом Space включался новый слой клавиш. То есть при нажатии &quot;J&quot; при зажатом пробеле печаталась &quot;4&quot;, при двойном нажатии &quot;J&quot; при зажатом пробеле печаталось &quot;44&quot; и т.д.. При нажатии &quot;JKL&quot; печатолось &quot;456&quot; - все при единожды зажатом пробеле.</p><p>Либо, как вариант, слой менялся при первом нажатии и отпускании AltGr (RWin). А при втором клавиатура возвращалась в исходное состояние.</p>]]></content>
			<author>
				<name><![CDATA[sd7962]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34089</uri>
			</author>
			<updated>2016-08-15T11:12:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106770#p106770</id>
		</entry>
</feed>
