<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AutoHotkey: использование пробела в качестве модификатора]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=1370&amp;type=atom" />
	<updated>2012-04-16T11:54:48Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=1370</id>
		<entry>
			<title type="html"><![CDATA[Re: AutoHotkey: использование пробела в качестве модификатора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59358#p59358" />
			<content type="html"><![CDATA[<p>Помудрил над идеей, получилось такое. Пробел как модификатор дает обрабатывать и двойные нажатия. Например, прижав пробел и однажды нажав кнопку 4, получим &quot;$&quot;, а дважды — &quot;;&quot;. На мой взгляд&nbsp; — удобно.<br /></p><div class="codebox"><pre><code>#UseHook, On
Space:: 
  If rep ;если разрешен повтор, при удержании посылать автопробелы 
    Send, {Space}
  If A_PriorHotkey=&quot;Space Up&quot; &amp;&amp; A_TimeSincePriorHotkey&lt;500
    rep=1 ;разрешаем автоповтор после нажатия двойного пробела
Return
                                                 
Space Up:: ;по отпускании пробела посылаем нужный символ
  Send, % lit ? lit : &quot;{Space}&quot;
  lit =
  rep:=0
Return
#UseHook, Off
                      
sp(s,ss=&quot;&quot;) ; при нажатом пробеле, назначает символы на одинарное и двойное нажатия 
{ Global
   If GetKeyState(&quot;Space&quot;, &quot;P&quot;) ;если пробел не отпущен, запоминаем...
      (A_PriorHotkey = &quot;Space&quot;) ? lit:=s  ; ...символ одного нажатия 
    : (A_PriorHotkey = A_ThisHotkey)? lit:=ss ; ...символ двух нажатий 
  Else
    Send, {%A_ThisHotkey%} ;если пробел не нажат, шлём штатный символ 
}</code></pre></div><p>Вот пример настройки клавиш верхнего ряда. <br /></p><div class="codebox"><pre><code>sc029::sp(&quot;``&quot;,&quot;~&quot;)
sc002::sp(&quot;{!}&quot;,&quot; := &quot;)
sc003::sp(&quot;@&quot;,&quot;&quot;&quot;&quot;)
sc004::sp(&quot;{#}&quot;,&quot;{ASC 0176}C&quot;)
sc005::sp(&quot;{$}&quot;,&quot;;&quot;)
sc006::sp(&quot;{%}&quot;,&quot;{%}&quot;)
sc007::sp(&quot;{^}&quot;,&quot;:&quot;)
sc008::sp(&quot;{&amp;}&quot;,&quot;?&quot;)
sc009::sp(&quot;{*}&quot;,&quot;{ASC 0149}&quot;)
sc00A::sp(&quot;(&quot;,&quot;()&quot;)
sc00B::sp(&quot;)&quot;,&quot;(){Left}&quot;)
sc00C::sp(&quot; {ASC 0151} &quot;,&quot;_&quot;)
sc00D::sp(&quot;{+}&quot;,&quot;{ASC 0177}&quot;) 
sc02B::sp(&quot;/&quot;,&quot;|&quot;)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[NikVasKo]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=367</uri>
			</author>
			<updated>2012-04-16T11:54:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59358#p59358</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AutoHotkey: использование пробела в качестве модификатора]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=10501#p10501" />
			<content type="html"><![CDATA[<p>Пример демонстрирует замену следующих нажатий:<br /></p><div class="quotebox"><blockquote><p>Space+A -&gt; 7<br />Space+S -&gt; 8<br />Space+D -&gt; 9</p></blockquote></div><p>Автоповтор пробела начнётся, если быстро нажать его второй раз и не отпускать.<br /></p><div class="codebox"><pre><code>#UseHook, On

vk41:: Print(7) ; Space+A -&gt; 7
vk53:: Print(8) ; Space+S -&gt; 8
vk44:: Print(9) ; Space+D -&gt; 9

Space::
  If(r or !bs)
  {
    bs=1
    Send, {Space}
  }
  If(A_PriorHotkey=&quot;Space Up&quot; &amp;&amp; A_TimeSincePriorHotkey&lt;300)
    r=1
Return

Space Up:: bs:=0, r:=0

Print(s)
{
  Global
  If GetKeyState(&quot;Space&quot;, &quot;P&quot;)
    Send, {BS %bs%}%s%
  Else
    Send, {%A_ThisHotkey%}
  bs=0
}</code></pre></div><p>Автор примера - <strong>YMP</strong>.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2008-04-17T08:08:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=10501#p10501</id>
		</entry>
</feed>
