<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Отправка сообщений в чат]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16941&amp;type=atom" />
	<updated>2022-02-05T20:32:14Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=16941</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=152005#p152005" />
			<content type="html"><![CDATA[<p>Попробую сам разобраться.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T20:32:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=152005#p152005</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=152004#p152004" />
			<content type="html"><![CDATA[<p>Не переменную, а строку, непонятен синтаксис: </p><div class="codebox"><pre><code>VarSetCapacity(UTF-8, size := StrPut(ConsoleCommand, &quot;UTF-8&quot;) * 2, 0)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T20:03:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=152004#p152004</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=152003#p152003" />
			<content type="html"><![CDATA[<p>Я не понял вопроса. Какую переменную имеете в виду?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-02-05T19:50:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=152003#p152003</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=152002#p152002" />
			<content type="html"><![CDATA[<p>Хорошо, спасибо. А не подскажите, зачем в: </p><div class="codebox"><pre><code>VarSetCapacity(UTF-8, size := StrPut(ConsoleCommand, &quot;UTF-8&quot;) * 2, 0)</code></pre></div><p> нужно отправлять строку?</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T19:48:52Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=152002#p152002</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151998#p151998" />
			<content type="html"><![CDATA[<p>Посылать нужно в той кодировке, которую ожидает принимающая функция.<br /></p><div class="quotebox"><cite>svoboden пишет:</cite><blockquote><p>Т.е. нужно так писать?</p></blockquote></div><p>Если отправляете из Юникод-версии, и хотите отправить в кодировке UTF-16, то так. Если вресия ANSI, тогда нужно преобразовать строку в Юникод.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-02-05T18:41:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151998#p151998</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151997#p151997" />
			<content type="html"><![CDATA[<p>Насколько я понял, вместо 520 должна быть длина строки в байтах, а не в символов, но как узнать длину строки в байтах. Т.е. нужно так писать?<br /></p><div class="codebox"><pre><code>size := StrPut(ConsoleCommand, &quot;UTF-16&quot;)*2

NumPut(size, COPYDATASTRUCT, A_PtrSize, &quot;Uint&quot;)
NumPut(&amp;ConsoleCommand, COPYDATASTRUCT, A_PtrSize*2)
</code></pre></div><p>Но у меня UTF-16 не посылает русский текст, только UTF-8 посылает.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T15:53:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151997#p151997</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151996#p151996" />
			<content type="html"><![CDATA[<p>Да там, кроме ошибок, ничего и нету. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> И вообще мало что понятно. Что там за 520, откуда оно взялось? Почему не 666? Судя по строке<br /></p><div class="codebox"><pre><code>VarSetCapacity(COPYDATASTRUCT, A_PtrSize * 3, 0)</code></pre></div><p>предполагается учитывать размер указателя, но в следующих строках он не учитывается.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-02-05T15:43:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151996#p151996</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151993#p151993" />
			<content type="html"><![CDATA[<p>Хорошо, спасибо. Т.е. кроме названия переменных, ошибок больше нету?</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T13:52:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151993#p151993</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151989#p151989" />
			<content type="html"><![CDATA[<p>Это именно переменная.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-02-05T09:21:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151989#p151989</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151988#p151988" />
			<content type="html"><![CDATA[<p>Это указатель вроде <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" />, переменную я бы так не называл. А так да, согласен. Чтобы не запутаться в коде написал.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T08:37:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151988#p151988</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151986#p151986" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>svoboden пишет:</cite><blockquote><p>правильно ли составлен скрипт?</p></blockquote></div><p>Прежде всего, не стоило бы называть переменную <em>UTF-8</em>. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Это надо же было додуматься!</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2022-02-05T08:22:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151986#p151986</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Отправка сообщений в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151985#p151985" />
			<content type="html"><![CDATA[<p>Написал скрипт для отправки в чат сообщений для игры. Если кто разбирается, то есть несколько вопросов:</p><div class="codebox"><pre><code>ConsoleCommand := &quot;say привет&quot;

F1::
VarSetCapacity(UTF-8, size := StrPut(ConsoleCommand, &quot;UTF-8&quot;) * 2, 0)
StrPut(ConsoleCommand, &amp;UTF-8, &quot;UTF-8&quot;)

VarSetCapacity(COPYDATASTRUCT, A_PtrSize * 3, 0)

;NumPut(0, COPYDATASTRUCT, 0, &quot;Uint&quot;)
NumPut(520, COPYDATASTRUCT, 4, &quot;Uint&quot;)
NumPut(&amp;UTF-8, COPYDATASTRUCT, 8, &quot;UPtr&quot;)

SendMessage, 0x004A,, &amp;COPYDATASTRUCT,, ahk_exe csgo.exe
return</code></pre></div><br /><p>1) Почему первое поле структуры CopyDataStruct нужно указывать в 0? По идее должно быть 1, т.к. передается текст.<br />2) Зачем в VarSetCapacity заносить StrPut? Только потому, что так точнее отображается длинна строки?.<br />3) Как посчитать, сколько байт содержит строка в анси или юникод кодировке, т.к. ее размер в байтах нужно передать.</p><p>Ну и вообще, правильно ли составлен скрипт? Т.к. нужно правильно передать русский текст? Спасибо.</p><p>Исправленный вариант:<br /></p><div class="codebox"><pre><code>DetectHiddenWindows, On
Setbatchlines -1

ConsoleCommand := &quot;say привет&quot;

F1::
WinGet, hWnd, ID, ahk_class Valve001
VarSetCapacity(message, SizeInBytes := StrPut(ConsoleCommand, &quot;UTF-8&quot;) * (A_IsUnicode ? 2 : 1), 0)
StrPut(ConsoleCommand, &amp;message, &quot;UTF-8&quot;)

VarSetCapacity(COPYDATASTRUCT, A_PtrSize*3, 0)

;NumPut(0, COPYDATASTRUCT, 0, &quot;Uint&quot;)
NumPut(SizeInBytes, COPYDATASTRUCT, A_PtrSize, &quot;UInt&quot;)
NumPut(&amp;message, COPYDATASTRUCT, A_PtrSize*2, &quot;Ptr&quot;)
   
DllCall(&quot;SendMessage&quot;, &quot;Ptr&quot;, hWnd, UInt, WM_COPYDATA := 0x4A, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, &amp;COPYDATASTRUCT)
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2022-02-05T08:11:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151985#p151985</id>
		</entry>
</feed>
