<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: ControlSend с разными языками]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17921&amp;type=atom" />
	<updated>2023-08-23T15:57:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=17921</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: ControlSend с разными языками]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=159107#p159107" />
			<content type="html"><![CDATA[<p>Насколько я понимаю, ControlSend посылает как коды клавиш, так и символы. Последнее и даёт возможность посылать одновременно буквы разных языков. Но ваше окно, видимо, символы игнорирует, а получает их из кодов клавиш самостоятельно. Отсюда и зависимость от языка ввода. Отсюда же и проблема с регистром. Код клавиши ничего не говорит о регистре символа, о нём говорит предшествующий ему код Shift, например. Так что, думаю, для отображения заглавной &quot;А&quot; нужно посылать {Shift down}A{Shift up}. Не проверял, т.к. не на чем, нет такого окна под рукой.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2023-08-23T15:57:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=159107#p159107</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: ControlSend с разными языками]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=159092#p159092" />
			<content type="html"><![CDATA[<p>Здравствуйте, форумчане.<br />На одном проекте MTA включили анти-чит, который блокирует использование AHK (я и многие другие игроки используют его для удобства, а не для читерства или другого преимущества над другими игроками).</p><p>Хотел воспользоваться AHK Hider, но видимо, для 10 винды не подходит.</p><p>Путём тестов выяснил, что ввод сообщения через ControlSend работает, но возникла проблема с языком ввода текста.</p><p>В самом начале я как бы меняю раскладку на английскую (это необходимо для того, чтобы открылась консоль):<br /></p><div class="codebox"><pre><code>SendMessage, 0x50,, 0x4090409,, A
*открытие консоли*</code></pre></div><p>Затем, я ввожу текст, но перед этим меняю раскладку на русскую:<br /></p><div class="codebox"><pre><code>SendMessage, 0x50,, 0x4190419,, A
ControlSend,, me привет, MTA: San Andreas</code></pre></div><p>но из &quot;me привет&quot; остаётся только &quot;привет&quot;. Если не переключать раскладку с пом. SendMessage, то остаётся только &quot;me&quot;.</p><p>Пробовал цикл, который посимвольно читает строку и в зависимости от символа меняет раскладку:<br /></p><div class="codebox"><pre><code>Loop, parse, wText
   {
      if A_LoopField contains %eng%
         SendMessage, 0x50,, 0x4090409,, A
      else
         SendMessage, 0x50,, 0x4190419,, A
      ControlSend,, %A_LoopField%, MTA: San Andreas
	}</code></pre></div><p>и вместо &quot;me привет&quot; выводит &quot;mу привет&quot;.</p><p>Также заметил проблемы с регистром - он просто игнорирует заглавные буквы, запятые меняет на точки.</p><p>Пробовал в начале кода ставить<br />StringCaseSense, Locale или StringCaseSense, On - не помогает.</p><p>Помогите, как его надрессировать, чтобы он слушался регистр и другие знаки?</p>]]></content>
			<author>
				<name><![CDATA[ivanday1]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=43255</uri>
			</author>
			<updated>2023-08-22T22:31:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=159092#p159092</id>
		</entry>
</feed>
