<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: проблемы с кодировкой при SendKeys]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6645</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6645&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: проблемы с кодировкой при SendKeys».]]></description>
		<lastBuildDate>Fri, 06 Jan 2012 10:33:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55341#p55341</link>
			<description><![CDATA[<p>да, все именно так, камень оказался именно в раскладках. при этом, как правильно сказал <strong>YMP</strong>, важно знать в какой раскладке целевое окно. важно заметить, что винда может хранить одно окно в одной раскладке, а другое - во второй.<br />скрипт выполняется в раскладке по умолчанию.<br />проблема решилась привязкой смены раскладки заданной комбинацией клавиш (в моем случае русская сменялась ctrl+1, а английская ctrl+0). таким образом, в какой бы раскладке не находилось целевое окно, мы установим нужную нам раскладку.<br />хорошим толчком была статья td4_robot (ЖЖ), на которую я случайно наткнулся.<br />http://td4-robot.livejournal.com/11584.html</p><p>всем спасибо, тема может быть закрыта.</p>]]></description>
			<author><![CDATA[null@example.com (rg81)]]></author>
			<pubDate>Fri, 06 Jan 2012 10:33:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55341#p55341</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55339#p55339</link>
			<description><![CDATA[<p>Тут играют роль две раскладки: самого скрипта и целевого окна. Скрипт запускается с раскладкой по умолчанию, и, видимо, SendKeys использует её для преобразования букв в нажатия клавиш. Поскольку русских букв нет в английской раскладке, а английских в русской, отсюда и странный результат. Некоторую логику уловить можно — например, буквы типа &amp;#205;, &amp;#221;, &amp;#201;, которых в английской раскладке тоже нет, преобразуются в нажатия клавиш I, Y, E. Что с русскими происходит, не совсем понятно.</p><p>Кроме того, посылаются именно нажатия клавиш, а не буквы, поэтому нажатие клавиши А/Ф отобразится в целевом окне либо как английская буква А, либо как русская Ф, в зависимости от того, на какой язык ввода переключено окно.</p><p>По идее, первую проблему можно обойти, заменяя русские буквы на английские, которые стоят с ними на одной клавише (или английские на русские по той же логике). Но тут надо как-то узнать, какие на какие заменять, т.е. в какой раскладке запустился скрипт. И ещё остаётся вторая проблема — язык ввода целевого окна. Его нужно будет переключать туда-сюда, чтобы он соответствовал языку посылаемого в данный момент текста. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Fri, 06 Jan 2012 08:24:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55339#p55339</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55337#p55337</link>
			<description><![CDATA[<p>В смысле проблема в том, что SendKeys некорректно отправляет английские символы, если текущая раскладка клавиатуры русская и наоборот?</p>]]></description>
			<author><![CDATA[null@example.com (dsb)]]></author>
			<pubDate>Fri, 06 Jan 2012 05:43:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55337#p55337</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55334#p55334</link>
			<description><![CDATA[<p><strong>rg81</strong>, проблема старая, известная и, в общем случае, средствами VBScript не очень решаемая. Ваш вывод про раскладки — верен.</p><p>Рекомендую для данных целей перейти на использование AutoIt (если нужна прозрачная работа с Automation), либо на AHK.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 05 Jan 2012 22:00:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55334#p55334</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55333#p55333</link>
			<description><![CDATA[<p>сейчас исходный файл в 1251.<br />нет привязки к конкретной кодировке : в какой нужно -- в такой и будет.<br />я в прямом смысле слова перебрал все комбинации открытия файла(имеется ввиду 4-й параметр) и русские кодировки.</p><p>есть некий прогресс:<br />скрипт запущен на другом компьютере(ОС win7 на обеих), и нормально работает с русскими символами. НО! когда приходится отправлять латинские -- мы терпим поражение...<br />я связываю это с тем, что на другом компе по умолчанию стоит русская раскладка. <br />у меня же -- английская.</p>]]></description>
			<author><![CDATA[null@example.com (rg81)]]></author>
			<pubDate>Thu, 05 Jan 2012 21:42:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55333#p55333</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55329#p55329</link>
			<description><![CDATA[<p>Так в какой кодировке исходный файл вы знаете?</p>]]></description>
			<author><![CDATA[null@example.com (dsb)]]></author>
			<pubDate>Thu, 05 Jan 2012 20:00:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55329#p55329</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: проблемы с кодировкой при SendKeys]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=55321#p55321</link>
			<description><![CDATA[<p>доброго времени суток уважаемым знатокам! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>задача следующего рода : <br />1. открыть файл для чтения.<br />2. считать произвольную строку.<br />3. отредактировать строку.<br />4 передать как нажатие клавиш (sendKeys)</p><p>проблема : <br />1. при передаче переменной, вместо текста получаются крякозяблы.</p><p>попытка решения:<br /></p><div class="codebox"><pre><code>Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set file = FSO.OpenTextFile(&quot;names.txt&quot;, 1,false,0)

Dim tmp,name,surname

&#039;...

tmp = &quot;&quot;
name = &quot;&quot;
surname = &quot;&quot;
Randomize
for i = 0 to int(9999*rnd)+3 
    file.SkipLine()
next
tmp = file.ReadLine()
name = mid(tmp,1,instr(tmp,&quot;_&quot;)-1)
surname = mid(tmp,instr(tmp,&quot;_&quot;)+1,20)
tmp = &quot;&quot;

msgbox(name &amp; &quot;_!_&quot; &amp; surname) &#039;в сообщении явно показано, что строка считалась, и разделилась как мне нужно.

WScript.Sleep (2000)
WSHShell.SendKeys(name) &#039;в лучших фантазиях получаем просто &quot;00&quot; или &quot;/&quot;. в худших - бред :(
&#039;...</code></pre></div><p>p.s. всяческие извращения с преобразованием кодировки исходного текстового файла, а также переменной не принесли успеха.</p>]]></description>
			<author><![CDATA[null@example.com (rg81)]]></author>
			<pubDate>Thu, 05 Jan 2012 14:30:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=55321#p55321</guid>
		</item>
	</channel>
</rss>
