<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7862&amp;type=atom" />
	<updated>2012-12-14T10:51:15Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7862</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66970#p66970" />
			<content type="html"><![CDATA[<p>В общем, если кого интересует, в чем заключалась проблема:</p><p>В самом начале скрипта, был установлен рекомендуемый для новых скриптов режим Input для команды Send. Так вот, почему-то в блоке #If не было видно нажатия Shift&#039;a, посылаемого с помощью метода Input, для посыла кодов Юникода. Заметил также проблемы с определением состояния конкретно левого или правого модификаторов (&lt;! &gt;^ и тп). </p><p>Проблема решалась посылом нажатий модификаторов с помощью команды SendEvent, либо удалением записи &quot;SendMode Input&quot;, что делало Send псевдонимом SendEvent.</p><p>Но почему-то, когда был запущен SciTE4AutoHotkey проблем не было, и все работало. Видимо, мой скрипт брал параметры SendMode из этой проги.</p><p>Вот, для наглядности:<br /></p><div class="codebox"><pre><code>SendMode Input

vkC0:: ; клавиша | ` | Вкл/откл раскладки MSREJ
MsrejOn := !MsrejOn
return

*$vkE2::Send, {LShift Down} ;клавиша &lt;&gt;
vkE2 Up::Send, {LShift Up}

*$RShift::Send, {LCtrl Down}{RAlt Down}
RShift Up::Send, {LCtrl Up}{RAlt Up}

*vkBF::SendEvent, {RShift Down} ; это точка в русской раскладке
vkBF Up::SendEvent, {RShift Up}

&lt;^&gt;!vk38::Send, {u+002a}  ;  * — не сработает
^!vk36::Send, {U+005e}   ; ^ — сработает

#If MsrejOn
; | J |
    vk4A::Send, {u+006f} ; o — сработает
    &lt;+vk4A::Send, {u+004f}   ; O — не сработает
    &gt;+vk4A::Send, {u+004f}   ; O — сработает
    ^!vk4A::Send, {u+00f6}   ; ? — не сработает
#If</code></pre></div><p>Вот такие дела…</p>]]></content>
			<author>
				<name><![CDATA[Lexanni]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27286</uri>
			</author>
			<updated>2012-12-14T10:51:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66970#p66970</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66847#p66847" />
			<content type="html"><![CDATA[<p>Спасибо! Как вариант, отметил для себя. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Вообще, тут все очень странно… Например, такой вариант работает:<br /></p><div class="codebox"><pre><code>. . . . .
vkC0:: ; клавиша | ` | Вкл/откл раскладки MSREJ
MsrejOn := !MsrejOn
return

*$vkE2::Send, {LShift Down} ;клавиша &lt;&gt;
vkE2 Up::Send, {LShift Up}

#If MsrejOn
   
; | Q |
    vk51::Send, c
    +vk51::Send, C
    
; | W |
    vk57::Send, f
    +vk57::Send, F
. . . . . . 

#If</code></pre></div><p>Хотя, это работает только с буквами. С символами будет твориться какая-то хрень. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Lexanni]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27286</uri>
			</author>
			<updated>2012-12-10T16:28:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66847#p66847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66824#p66824" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>vkC0:: MsrejOn := !MsrejOn

#If MsrejOn
vk51:: Send, % MyShift() ? &quot;{u+0043}&quot; : &quot;{u+0063}&quot;
vk57:: Send, % MyShift() ? &quot;{u+0046}&quot; : &quot;{u+0066}&quot;
#If

MyShift()
{
return GetKeyState(&quot;vkE2&quot;, &quot;P&quot;)
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-12-09T20:25:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66824#p66824</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66821#p66821" />
			<content type="html"><![CDATA[<p>Прошу прощения, поправил.</p>]]></content>
			<author>
				<name><![CDATA[Lexanni]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27286</uri>
			</author>
			<updated>2012-12-09T19:32:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66821#p66821</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66820#p66820" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>Lexanni</strong>, ознакомься с <a href="http://forum.script-coding.com/viewtopic.php?id=6148">этой</a> темой, отредактируй заголовок.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-12-09T19:20:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66820#p66820</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: В #If не видно нажатия Shift'a повешенного на клавишу <>]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=66814#p66814" />
			<content type="html"><![CDATA[<p>В общем, суть скрипта такова:<br /></p><div class="codebox"><pre><code>
. . . . .
vkC0:: ; клавиша | ` | Вкл/откл раскладки MSREJ
MsrejOn := !MsrejOn
return

*$vkE2::Send, {LShift Down} ;клавиша &lt;&gt;
vkE2 Up::Send, {LShift Up}

#If MsrejOn
   
; | Q |
    vk51::Send, {u+0063}     ; c
    +vk51::Send, {u+0043}   ; C
    
; | W |
    vk57::Send, {u+0066}     ; f
    +vk57::Send, {u+0046}   ; F
. . . . . . 

#If

</code></pre></div><p>Почему-то при запуске скрипта и включении раскладки MSREJ, не работают замены +vk51, +vk57 и т.п., а vk51, vk57 — работают. Без включения раскладки MSREJ, клавиша | &lt;&gt; |, без вопросов, работает как Shift. Забавно, что после того, как я открывают скрипт в SciTE4AutoHotkey, все начинает работать как надо, и +vk51 посылает большую букву! После закрытия SciTE4AutoHotkey, +vk51 все снова перестает работать.</p><p>Вроде бы версия AHK_L совсем новая - 1.1.09.00</p><p>Ребят, подскажите пожалуйста, как это победить?</p>]]></content>
			<author>
				<name><![CDATA[Lexanni]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27286</uri>
			</author>
			<updated>2012-12-09T18:06:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=66814#p66814</id>
		</entry>
</feed>
