<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7411&amp;type=atom" />
	<updated>2012-08-01T15:24:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7411</id>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62244#p62244" />
			<content type="html"><![CDATA[<p>Проблема решилась использованием функции vbscript</p><div class="codebox"><pre><code>SetLocale 1049</code></pre></div><p>Теперь и на английско-арабской винде Chr и Asc возвращают требуемые значения.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-08-01T15:24:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62244#p62244</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62225#p62225" />
			<content type="html"><![CDATA[<p>Я думаю, что было бы корректнее работать с байтовым массивом в VBS, чем через строки JS.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2012-07-31T18:54:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62225#p62225</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62224#p62224" />
			<content type="html"><![CDATA[<p>В общем-то код тут не особо поможет, ну если очень хочется, то вот относящийся к делу кусок (вернее куски)</p><p>Используемые функции VBScript<br /></p><div class="codebox"><pre><code>&lt;script language=&quot;vbscript&quot;&gt;
Function GetAsc(char)
GetAsc=Asc(char)
End Function

Function GetChr(code)
GetChr=Chr(code)
End Function

Function xgetdata(x)
dim ret
x.GetData ret, 8
xgetdata=ret
End Function
&lt;/script&gt;</code></pre></div><p>Формирование и отправка пакета<br /></p><div class="codebox"><pre><code>packet=GetChr(0)+GetChr(255)+GetChr(0)+GetChr(6)+GetChr(0)+GetChr(2)
Winsock.SendData(packet)</code></pre></div><p>Создание объекта MSWinsock, приём и декодирование пакета<br /></p><div class="codebox"><pre><code>var Winsock= new ActiveXObject(&quot;MSWinsock.Winsock&quot;)

window.onload=function()
{

function Winsock::DataArrival(bytTotal)
{
var Data
Data = xgetdata(Winsock);
switch (GetAsc(Data.charAt(0))&amp;31)
{
case 1:
...
}
}

    Winsock.Protocol = 1
    Winsock.RemoteHost= &quot;192.168.200.178&quot;
    Winsock.RemotePort = 24001
    Winsock.Bind(24000)
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-07-31T17:47:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62224#p62224</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62223#p62223" />
			<content type="html"><![CDATA[<p>Где код?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-31T16:38:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62223#p62223</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[HTA: Аналоги VB-функций Asc и Chr или как обойти неверное кодирование]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62220#p62220" />
			<content type="html"><![CDATA[<p>Добрый день, товарищи. Столкнулся со следующей проблемой.</p><p>Имеется hta-файл, преимущественно на jscript, за исключением двух функций из vb - Asc и Chr. С помощью этих функций из значений [0x00, 0xff] формируется пакет (а именно ASCII-строка) и отправляется через сокет по ethernet в подключённую железяку (использую MSWinsock.SendData). И всё было ничего, пока юзалось на руссифицированной винде (как на XP так и на 7-ке). Но вот потребовалось запустить на ноутбуке с английско-арабской виндой, и содержимое пакетов резко поплохело. Я так понимаю, случилось это потому, что верхняя половина символов ASCII-таблицы оказалась отличной от использовавшейся ранее.<br />Железяку я не перешью, поэтому надо что-то придумать, как получать валидные символы кодов и наоборот средствами jscript, vb или activex, дабы формировать верные UDP-пакеты и верно их же раскодировать.</p>]]></content>
			<author>
				<name><![CDATA[Himmler]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25902</uri>
			</author>
			<updated>2012-07-31T15:44:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62220#p62220</id>
		</entry>
</feed>
