<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8460</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8460&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251».]]></description>
		<lastBuildDate>Fri, 12 Jul 2013 17:45:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73699#p73699</link>
			<description><![CDATA[<p>Это разные параметры:<br /></p><div class="codebox"><pre><code>ahk_class Notepad++
ahk_exe notepad++.exe</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 12 Jul 2013 17:45:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73699#p73699</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73697#p73697</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><div class="quotebox"><blockquote><p>в каких условиях он может не работать.</p></blockquote></div><p>Думаю что ни в каких. У вас неправильно заданы критерии определения окна. В 6 посте ссылка на скрипт. Скриншот окон вместе приведите. И пример как пишите #If WinActive. Точнее WinActive(&quot;???&quot;).</p></blockquote></div><p>??? = наименование процесса без &quot;.exe&quot;</p><p>Брал Ваш пример и подставлял вместо Notepad++ (и Notepad из примера многоуважаемого <strong>YMP</strong>) имя своего приложения - не работает. При этом Ваш пример с тем же Notepad++ работает, т.е. все правильно. <br />Я не удивляюсь, что не работает - в приложении используется безумный движок.<br />Думаю возможно нужно отлавливать ID окна, а не имя?</p><p>Еще раз спасибо за помощь.</p>]]></description>
			<author><![CDATA[null@example.com (Antant)]]></author>
			<pubDate>Fri, 12 Jul 2013 17:39:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73697#p73697</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73695#p73695</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>в каких условиях он может не работать.</p></blockquote></div><p>Думаю что ни в каких. У вас неправильно заданы критерии определения окна. В 6 посте ссылка на скрипт. Скриншот окон вместе приведите. И пример как пишите #If WinActive. Точнее WinActive(&quot;???&quot;).</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 12 Jul 2013 16:08:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73695#p73695</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73693#p73693</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Уже исправлено в #21.<br />Вам осталось только дописать массив Keys для остальных кнопок.</p></blockquote></div><p>Громадное спасибо всем, особенно <strong>serzh82saratov</strong> и <strong>YMP</strong> ! К сожалению ни в одном из примеров <strong>WinActive</strong> и <strong>#If WinActive</strong> не заработали в моем приложении, в блокноте и блокноте++ условие работает. Но на данном этапе это не так важно, буду признателен, если ткнёте носом покурить мануал, в каких условиях он может не работать.</p>]]></description>
			<author><![CDATA[null@example.com (Antant)]]></author>
			<pubDate>Fri, 12 Jul 2013 15:52:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73693#p73693</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73657#p73657</link>
			<description><![CDATA[<p>Уже исправлено в #21.<br />Вам осталось только дописать массив Keys для остальных кнопок.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 11 Jul 2013 16:10:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73657#p73657</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73656#p73656</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><div class="quotebox"><blockquote><p>вот только непойму почему оно выдаёт ошибку?</p></blockquote></div><p>Разобрался<br /></p><div class="quotebox"><blockquote><p>Выражение должно точно соответствовать тексту существующей #If</p></blockquote></div></blockquote></div><p>А как это исправить в Вашем примере? И еще раз спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Antant)]]></author>
			<pubDate>Thu, 11 Jul 2013 16:01:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73656#p73656</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73653#p73653</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>вот только непойму почему оно выдаёт ошибку?</p></blockquote></div><p>Разобрался<br /></p><div class="quotebox"><blockquote><p>Выражение должно точно соответствовать тексту существующей #If</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 11 Jul 2013 14:41:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73653#p73653</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73652#p73652</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Методом проб и ошибок получился вот такой монстр (на примере 1 печатного символа), а всего их около 80</p></blockquote></div><p>По идее такой код может сократить решение:<br /></p><div class="codebox"><pre><code>
Keys := {&quot;vk53&quot;: &quot;0251&quot;, &quot;+vk53&quot;: &quot;0219&quot;}
#If MyCondition()
#If 
HotKey, If, MyCondition()
For k in Keys
   HotKey, %k%, Асtion
HotKey, If
Return 

Асtion:
    SendMessage, 0x50,, 0x4090409
    Send % &quot;{ASC &quot; Keys[A_ThisHotkey] &quot;}&quot;
    Sleep, 25
    SendMessage, 0x50,, 0x4190419
    Return 
 
MyCondition()      {
    Return WinActive(&quot;ahk_class Notepad++&quot;) &amp;&amp; DllCall(&quot;GetKeyboardLayout&quot;, &quot;Int&quot;, DllCall(&quot;GetWindowThreadProcessId&quot;, &quot;Int&quot;, WinExist(&quot;A&quot;), &quot;Int&quot;, 0)) = 0x4190419 
} 
</code></pre></div><p>вот только непойму почему оно выдаёт ошибку?<br /></p><div class="quotebox"><blockquote><p>Error:&nbsp; Parameter #2 must match an existing #If expression.</p><p>	Line#<br />	009: Keys := {&quot;vk53&quot;: &quot;0251&quot;, &quot;+vk53&quot;: &quot;0219&quot;}<br />---&gt;	010: Hotkey,If,MyCondition()</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 11 Jul 2013 14:16:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73652#p73652</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73650#p73650</link>
			<description><![CDATA[<p>Условия можно комбинировать.<br /></p><div class="codebox"><pre><code>#If WinActive(&quot;ahk_class Notepad&quot;) and DllCall(&quot;GetKeyboardLayout&quot;, &quot;Int&quot;, DllCall(&quot;GetWindowThreadProcessId&quot;, &quot;Int&quot;, WinExist(&quot;A&quot;), &quot;Int&quot;, 0)) = 0x4190419

+vk37::
SendMessage, 0x50,, 0x4090409
Send {ASC 0063}
Sleep, 25
SendMessage, 0x50,, 0x4190419
Return

#If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 11 Jul 2013 10:43:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73650#p73650</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73648#p73648</link>
			<description><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Всё хорошо, что хорошо кончается. Но в чём была проблема, мне так и осталось непонятным. Раз дефолтная кодировка английская, хоткеи должны работать и с буквенными именами. А больше никакой разницы я не вижу.</p></blockquote></div><p>Ларчик не так просто открывался. Вся проблема была в том, что</p><div class="codebox"><pre><code> ASC xxxx</code></pre></div><p>отрабатывается только в раскладке по умолчанию. Плюс нужно было универсальное решение для пользователей c UAC и без UAC, т.е. от <strong>SendPlay</strong> и <strong>SendInput</strong> отваливаются из-за громоздкого скрипта, пришлось оставить <strong>Send</strong></p><p>Методом проб и ошибок получился вот такой монстр (на примере 1 печатного символа), а всего их около 80:</p><div class="codebox"><pre><code>#If DllCall(&quot;GetKeyboardLayout&quot;, &quot;Int&quot;, DllCall(&quot;GetWindowThreadProcessId&quot;, &quot;Int&quot;, WinExist(&quot;A&quot;), &quot;Int&quot;, &quot;0&quot;)) = 0x4190419
+vk37::
SendMessage, 0x50,, 0x4090409
Send {ASC 0063}
Sleep, 25
SendMessage, 0x50,, 0x4190419
#If
Return</code></pre></div><p>Но, зараза такая, перестали работать <strong>#ifwinactive</strong> и <strong>winwait</strong>, скорее всего потому что уже есть <strong>#If</strong>.</p><p>Порекомендуйте, пожалуйста, решение, чтобы они в связке работали.</p>]]></description>
			<author><![CDATA[null@example.com (Antant)]]></author>
			<pubDate>Thu, 11 Jul 2013 10:05:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73648#p73648</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73645#p73645</link>
			<description><![CDATA[<p>Всё хорошо, что хорошо кончается. Но в чём была проблема, мне так и осталось непонятным. Раз дефолтная кодировка английская, хоткеи должны работать и с буквенными именами. А больше никакой разницы я не вижу.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 11 Jul 2013 04:16:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73645#p73645</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73644#p73644</link>
			<description><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><div class="quotebox"><cite>Antant пишет:</cite><blockquote><p>Что нужно написать вместо &quot;#IfWinActive notepad&quot; чтобы он проверял, что раскладка русская и не отрабатывал в других раскладках?</p></blockquote></div><div class="codebox"><pre><code>SetKeyDelay 25, 25, Play
Return

#If DllCall(&quot;GetKeyboardLayout&quot;, &quot;Int&quot;, DllCall(&quot;GetWindowThreadProcessId&quot;
             , &quot;Int&quot;, WinExist(&quot;A&quot;), &quot;Int&quot;, &quot;0&quot;)) = 0x4190419
+vk53:: SendPlay {ASC 0219}
vk53:: SendPlay {ASC 0251}
#If

</code></pre></div><p>P.S.: У меня в Notepad++ с <strong>SendPlay</strong> не работает, но работает с <strong>SendInput</strong></p></blockquote></div><p>Ура, получилось! Буду тестировать на других машинах. Причем и <strong>SendPlay</strong> и <strong>SendInput</strong> работают.</p><p>Громадное спасибо всем ответившим. После тестирования на других машинах отпишусь.</p>]]></description>
			<author><![CDATA[null@example.com (Antant)]]></author>
			<pubDate>Wed, 10 Jul 2013 16:30:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73644#p73644</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73640#p73640</link>
			<description><![CDATA[<p><strong>Antant</strong><br />А что обычный Send, не работает? Вообще, трудно что-то советовать, т.к. нет универсальных решений, а приложения вашего у меня тоже нет. Ведёт оно себя странно. При английском языке ввода код должен выдавать нерусские буквы.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Wed, 10 Jul 2013 14:24:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73640#p73640</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73639#p73639</link>
			<description><![CDATA[<div class="quotebox"><cite>Antant пишет:</cite><blockquote><p>Что нужно написать вместо &quot;#IfWinActive notepad&quot; чтобы он проверял, что раскладка русская и не отрабатывал в других раскладках?</p></blockquote></div><div class="codebox"><pre><code>SetKeyDelay 25, 25, Play
Return

#If DllCall(&quot;GetKeyboardLayout&quot;, &quot;Int&quot;, DllCall(&quot;GetWindowThreadProcessId&quot;
             , &quot;Int&quot;, WinExist(&quot;A&quot;), &quot;Int&quot;, &quot;0&quot;)) = 0x4190419
+vk53:: SendPlay {ASC 0219}
vk53:: SendPlay {ASC 0251}
#If

</code></pre></div><p>P.S.: У меня в Notepad++ с <strong>SendPlay</strong> не работает, но работает с <strong>SendInput</strong></p>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Wed, 10 Jul 2013 14:21:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73639#p73639</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=73632#p73632</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Или Вы имели ввиду переменные, которые там используются.</p></blockquote></div><p>SendInput {Raw}</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 10 Jul 2013 12:42:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=73632#p73632</guid>
		</item>
	</channel>
</rss>
