<?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=8549&amp;type=atom" />
	<updated>2013-08-11T20:54:28Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8549</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74417#p74417" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Попробуй как то так:<br /></p><div class="codebox"><pre><code>*#vk53::SendInput {Blind}{LWin Up}{RWin Up}{vk41}</code></pre></div><div class="quotebox"><blockquote><p>Но * не работает с комбинациями типа vk20 &amp; vk46</p></blockquote></div><p>Так и не надо чтоб работал:<br /></p><div class="codebox"><pre><code>1 &amp; 2::SendInput {Blind}{vk41} </code></pre></div><p>При зажатом ктрл так посылается ктрл + А.</p></blockquote></div><p>Спасибо. Я немного изменил скрипт с исп-ем ассоциативного массива для этого случая:<br /></p><div class="codebox"><pre><code>
KeyArr := {&quot;Space &amp; f&quot;: &quot;Right&quot;}
            
For Key in KeyArr
    Hotkey, %Key%, PressKey ; удалил * перед %Key%
Return
 
$Space::Send, {Space} ; чтобы пробел по прежнему работал

PressKey:
    Value := KeyArr[A_ThisHotkey]
    SendInput {Blind}{%Value%}
    Return
</code></pre></div><p>Тема может быть закрыта, всем большое спасибо за помощь</p>]]></content>
			<author>
				<name><![CDATA[asaer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30557</uri>
			</author>
			<updated>2013-08-11T20:54:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74417#p74417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74396#p74396" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>При этом будет зажиматься клавиша Win (хоткей создается для #vk43, поэтому такой метод подойдет, если в хоткее нет !^+#</p></blockquote></div><p>Попробуй как то так:<br /></p><div class="codebox"><pre><code>*#vk53::SendInput {Blind}{LWin Up}{RWin Up}{vk41}</code></pre></div><div class="quotebox"><blockquote><p>Но * не работает с комбинациями типа vk20 &amp; vk46</p></blockquote></div><p>Так и не надо чтоб работал:<br /></p><div class="codebox"><pre><code>1 &amp; 2::SendInput {Blind}{vk41} </code></pre></div><p>При зажатом ктрл так посылается ктрл + А.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-11T03:05:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74396#p74396</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74393#p74393" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>заменить на<br /></p><div class="codebox"><pre><code>    SendInput % (GetKeyState(&quot;Control&quot;,&quot;P&quot;) ? &quot;^&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Shift&quot;,&quot;P&quot;) ? &quot;+&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Alt&quot;,&quot;P&quot;) ? &quot;!&quot; : &quot;&quot;)
              . &quot;{&quot; . Value . &quot;}&quot;
</code></pre></div></blockquote></div><p>получается след код:<br /></p><div class="codebox"><pre><code>
KeyArr := {&quot;#vk46&quot;: &quot;a&quot;}
            
For Key in KeyArr
    Hotkey, *%Key%, PressKey
Return

PressKey:
    ThisHotkey := SubStr(A_ThisHotkey, 2)    
    Value := KeyArr[ThisHotkey]
    
    SendInput % (GetKeyState(&quot;Control&quot;,&quot;P&quot;) ? &quot;^&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Shift&quot;,&quot;P&quot;) ? &quot;+&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Alt&quot;,&quot;P&quot;) ? &quot;!&quot; : &quot;&quot;)
              . &quot;{&quot; . Value . &quot;}&quot;
    
    Return
</code></pre></div><p>Работает, но при нажимании RCtrl, RShift, RAlt работает, но появляется пуск (т.е. посылается Win)</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Может проще так:<br /></p><div class="codebox"><pre><code>SendInput {Blind}{%Value%} </code></pre></div></blockquote></div><p>При этом будет зажиматься клавиша Win (хоткей создается для #vk43, поэтому такой метод подойдет, если в хоткее нет !^+#</p><p>Для создания хоткеев исп-ся<br /></p><div class="codebox"><pre><code>Hotkey, *%Key%, PressKey</code></pre></div><p>Но * не работает с комбинациями типа vk20 <strong>&amp;</strong> vk46, т.е. где первая клавиша не из множества !^+#<br />Итак используя ассоциативный массив - {&#039;vk20&amp;vk46&#039;: &#039;a&#039;}), хоткей назначается только на первую клавишу из комбинации, в моем примере - vk20. Как это исправить?</p>]]></content>
			<author>
				<name><![CDATA[asaer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30557</uri>
			</author>
			<updated>2013-08-10T20:32:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74393#p74393</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74377#p74377" />
			<content type="html"><![CDATA[<p>Может проще так:<br /></p><div class="codebox"><pre><code>SendInput {Blind}{%Value%} </code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-10T14:12:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74377#p74377</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74371#p74371" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>asaer пишет:</cite><blockquote><p>только если при нажатии, напр, #f, зажата клавиша(-ы) Ctrl, Alt, Shift, она(-и) тоже посылалась(-ись), т.е. чтобы при нажатии ^#f посылала ^a, ^!#f посылала ^!a и т.п.</p></blockquote></div><p>Строчку </p><div class="codebox"><pre><code>SendInput {%Value%} </code></pre></div><p>заменить на<br /></p><div class="codebox"><pre><code>    SendInput % (GetKeyState(&quot;Control&quot;,&quot;P&quot;) ? &quot;^&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Shift&quot;,&quot;P&quot;) ? &quot;+&quot; : &quot;&quot;)
              . (GetKeyState(&quot;Alt&quot;,&quot;P&quot;) ? &quot;!&quot; : &quot;&quot;)
              . &quot;{&quot; . Value . &quot;}&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-08-10T11:28:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74371#p74371</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74353#p74353" />
			<content type="html"><![CDATA[<p>Уф фуф фуф. <span class="bbu"> и замена клавишы RAlt клавишей Ctrl</span> ведь можно удалить!?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-09T20:54:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74353#p74353</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74351#p74351" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Модератор пишет:</cite><blockquote><p>Выберите какой-то один вопрос, остальные обсуждайте в других темах.</p></blockquote></div><p>На замечания модераторов&nbsp; у нас реагируют соответствующе.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-09T20:29:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74351#p74351</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74350#p74350" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, <br />Почти то, что нужно<br /></p><div class="codebox"><pre><code>
KeyArr := {&quot;#vk46&quot;: &quot;a&quot;, &quot;#vk47&quot;: &quot;b&quot;}
For Key in KeyArr
    Hotkey, *%Key%, PressKey
Return
 
PressKey:
    ThisHotkey := SubStr(A_ThisHotkey, 2)
    Value := KeyArr[ThisHotkey]
    SendInput {%Value%} 
    Return
</code></pre></div><p>только если при нажатии, напр, #f, зажата клавиша(-ы) Ctrl, Alt, Shift, она(-и) тоже посылалась(-ись), т.е. чтобы при нажатии ^#f посылала ^a, ^!#f посылала ^!a и т.п.</p>]]></content>
			<author>
				<name><![CDATA[asaer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30557</uri>
			</author>
			<updated>2013-08-09T20:24:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74350#p74350</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74339#p74339" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>asaer</strong>, прочитайте указанную выше ссылку, отредактируйте заголовок. Также ознакомьтесь с <a href="http://forum.script-coding.com/rules.html">Правилами форума</a>, в частности с <a href="http://forum.script-coding.com/rules.html#3.11.">этим</a>. Выберите какой-то один вопрос, остальные обсуждайте в других темах.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2013-08-09T13:54:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74339#p74339</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74330#p74330" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>1. Как можно использовать ассоциативный массив в AHK?</p></blockquote></div><p>Смотря для чего... Опишите задачу.<br /></p><div class="quotebox"><blockquote><p>2. Как можно создать горячие комбинации клавиш имея такой ассоциативный массив вида [&#039;#f&#039;: &#039;a&#039;, &#039;#g&#039;: &#039;b&#039; и т.п.], где ключ обозначает комбинацию клавиш, кот мы переопределяем, значение - что мы посылаем. При этом чтобы при нажимании клавиш модификаторов Ctrl, Shift, Alt, они тоже посылались, даже если нажаты все три модификатора сразу.</p></blockquote></div><p>Незнаю правильно ли я понял:<br /></p><div class="codebox"><pre><code>
KeyArr := {&quot;#vk46&quot;: &quot;a&quot;, &quot;#vk47&quot;: &quot;b&quot;}
For Key in KeyArr
    Hotkey, *%Key%, PressKey
Return
 
PressKey:
    ThisHotkey := SubStr(A_ThisHotkey, 2)
    Value := KeyArr[ThisHotkey]
    SendInput {%Value%} 
    Return
</code></pre></div><div class="quotebox"><blockquote><p>3. Как поменять клавишу модификатор на другую, например, чтобы при нажимании правого альта (RAlt) посылался Ctrl, при этом, нужно менять подобные комбинации:</p></blockquote></div><p> </p><div class="codebox"><pre><code>
RAlt &amp; vk46:: SendInput ^{vk46}
Shift &amp; RAlt:: SendInput +^{vk46}
LAlt &amp; RAlt:: SendInput !^{vk46}
</code></pre></div><p>--------------------------------------------</p><p>И прочитайте это -<a href="http://forum.script-coding.com/viewtopic.php?id=5421">http://forum.script-coding.com/viewtopic.php?id=5421</a>.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-08-08T22:54:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74330#p74330</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: исп-ие ассоциативного массива для определения хоткеев]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=74329#p74329" />
			<content type="html"><![CDATA[<p>Здравствуйте. </p><p>Как можно создать горячие комбинации клавиш имея ассоциативный массив вида {&#039;#f&#039;: &#039;a&#039;, &#039;#g&#039;: &#039;b&#039; и т.п.}, где ключ обозначает комбинацию клавиш, кот мы переопределяем, значение - что мы посылаем. <br />А если при нажатии, напр, #f, зажата клавиша(-ы) Ctrl, Alt, Shift, она(-и) тоже посылалась(-ись), т.е. чтобы при нажатии ^#f посылала ^a, ^!#f посылала ^!a и т.п.</p><p>Заранее спасибо.</p>]]></content>
			<author>
				<name><![CDATA[asaer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30557</uri>
			</author>
			<updated>2013-08-08T22:11:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=74329#p74329</id>
		</entry>
</feed>
