<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8460&amp;type=atom" />
	<updated>2013-07-12T17:45:28Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8460</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73699#p73699" />
			<content type="html"><![CDATA[<p>Это разные параметры:<br /></p><div class="codebox"><pre><code>ahk_class Notepad++
ahk_exe notepad++.exe</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-12T17:45:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73699#p73699</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73697#p73697" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Antant]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30390</uri>
			</author>
			<updated>2013-07-12T17:39:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73697#p73697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73695#p73695" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>в каких условиях он может не работать.</p></blockquote></div><p>Думаю что ни в каких. У вас неправильно заданы критерии определения окна. В 6 посте ссылка на скрипт. Скриншот окон вместе приведите. И пример как пишите #If WinActive. Точнее WinActive(&quot;???&quot;).</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-12T16:08:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73695#p73695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73693#p73693" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Antant]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30390</uri>
			</author>
			<updated>2013-07-12T15:52:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73693#p73693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73657#p73657" />
			<content type="html"><![CDATA[<p>Уже исправлено в #21.<br />Вам осталось только дописать массив Keys для остальных кнопок.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-11T16:10:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73657#p73657</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73656#p73656" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Antant]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30390</uri>
			</author>
			<updated>2013-07-11T16:01:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73656#p73656</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73653#p73653" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>вот только непойму почему оно выдаёт ошибку?</p></blockquote></div><p>Разобрался<br /></p><div class="quotebox"><blockquote><p>Выражение должно точно соответствовать тексту существующей #If</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-11T14:41:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73653#p73653</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73652#p73652" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-11T14:16:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73652#p73652</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73650#p73650" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-11T10:43:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73650#p73650</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73648#p73648" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Antant]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30390</uri>
			</author>
			<updated>2013-07-11T10:05:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73648#p73648</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73645#p73645" />
			<content type="html"><![CDATA[<p>Всё хорошо, что хорошо кончается. Но в чём была проблема, мне так и осталось непонятным. Раз дефолтная кодировка английская, хоткеи должны работать и с буквенными именами. А больше никакой разницы я не вижу.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-11T04:16:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73645#p73645</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73644#p73644" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Antant]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30390</uri>
			</author>
			<updated>2013-07-10T16:30:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73644#p73644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73640#p73640" />
			<content type="html"><![CDATA[<p><strong>Antant</strong><br />А что обычный Send, не работает? Вообще, трудно что-то советовать, т.к. нет универсальных решений, а приложения вашего у меня тоже нет. Ведёт оно себя странно. При английском языке ввода код должен выдавать нерусские буквы.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-07-10T14:24:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73640#p73640</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73639#p73639" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2013-07-10T14:21:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73639#p73639</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Перехват русской раскладки клавиатуры и введение в ASCII 1251]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73632#p73632" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Или Вы имели ввиду переменные, которые там используются.</p></blockquote></div><p>SendInput {Raw}</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-07-10T12:42:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73632#p73632</id>
		</entry>
</feed>
