<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Отправка сообщений в чат]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16941</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16941&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Отправка сообщений в чат».]]></description>
		<lastBuildDate>Sat, 05 Feb 2022 20:32:14 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152005#p152005</link>
			<description><![CDATA[<p>Попробую сам разобраться.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 20:32:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152005#p152005</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152004#p152004</link>
			<description><![CDATA[<p>Не переменную, а строку, непонятен синтаксис: </p><div class="codebox"><pre><code>VarSetCapacity(UTF-8, size := StrPut(ConsoleCommand, &quot;UTF-8&quot;) * 2, 0)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 20:03:46 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152004#p152004</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152003#p152003</link>
			<description><![CDATA[<p>Я не понял вопроса. Какую переменную имеете в виду?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Feb 2022 19:50:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152003#p152003</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152002#p152002</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 19:48:52 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152002#p152002</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151998#p151998</link>
			<description><![CDATA[<p>Посылать нужно в той кодировке, которую ожидает принимающая функция.<br /></p><div class="quotebox"><cite>svoboden пишет:</cite><blockquote><p>Т.е. нужно так писать?</p></blockquote></div><p>Если отправляете из Юникод-версии, и хотите отправить в кодировке UTF-16, то так. Если вресия ANSI, тогда нужно преобразовать строку в Юникод.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Feb 2022 18:41:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151998#p151998</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151997#p151997</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 15:53:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151997#p151997</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151996#p151996</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Feb 2022 15:43:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151996#p151996</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151993#p151993</link>
			<description><![CDATA[<p>Хорошо, спасибо. Т.е. кроме названия переменных, ошибок больше нету?</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 13:52:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151993#p151993</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151989#p151989</link>
			<description><![CDATA[<p>Это именно переменная.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Feb 2022 09:21:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151989#p151989</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151988#p151988</link>
			<description><![CDATA[<p>Это указатель вроде <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" />, переменную я бы так не называл. А так да, согласен. Чтобы не запутаться в коде написал.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 08:37:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151988#p151988</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151986#p151986</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 05 Feb 2022 08:22:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151986#p151986</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Отправка сообщений в чат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=151985#p151985</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 05 Feb 2022 08:11:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=151985#p151985</guid>
		</item>
	</channel>
</rss>
