<?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=12900&amp;type=atom" />
	<updated>2017-08-12T14:55:41Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12900</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Чтение строки из памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118175#p118175" />
			<content type="html"><![CDATA[<p><strong>belyankin12</strong>, третий аргумент - количество символов в строке, но не суть. Мне нужно не эту функцию использовать, а получить dwAddress так, чтобы это работало.</p>]]></content>
			<author>
				<name><![CDATA[Drygok]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37379</uri>
			</author>
			<updated>2017-08-12T14:55:41Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118175#p118175</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Чтение строки из памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118162#p118162" />
			<content type="html"><![CDATA[<p>А.. вот в чем дело. Скорее всего у тебя будет так: readString(hGTA, dwAddress + 122EF8, какое-то число). Я не представляю просто что нужно указывать третьим аргументом..</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-11T18:55:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118162#p118162</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Чтение строки из памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118153#p118153" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>Какую строку тебе необходимо получить? Сейчас есть функции для почти всех возможных диалогов. В твоем же UDF они есть наверняка.</p></blockquote></div><p>Последняя введенная игроком команда. В том то и дело, что это не SAMP, a CRMP, и тут не работают никакие функции, использующие модуль san_andreas_multiplayer.dll (samp.dll из samp). Чтобы работали хотя бы функции, связанные с самой ГТА помучаться пришлось, а тут вообще.</p>]]></content>
			<author>
				<name><![CDATA[Drygok]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37379</uri>
			</author>
			<updated>2017-08-11T17:26:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118153#p118153</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Чтение строки из памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118130#p118130" />
			<content type="html"><![CDATA[<p>Какую строку тебе необходимо получить? Сейчас есть функции для почти всех возможных диалогов. В твоем же UDF они есть наверняка.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-11T13:09:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118130#p118130</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Чтение строки из памяти]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118129#p118129" />
			<content type="html"><![CDATA[<p>Здравствуйте! Опять мне нужна помощь (да-да). В чем дело: есть у меня процесс (grand_theft_auto_san_andreas.dll) - сама игра. Она же использует файл (san_andreas_multiplayer.dll). В диспетчере только процесс. Используя CheatEngine, я нашел статический адрес строки (san_andreas_multiplayer.dll+122EF8), но вот как прочитать это из процесса? Или файл - и есть адрес, а 122EF8 -- указатель?</p><p>В общем, ничего не понятно. Если читать прямо так строку через AHK -- возвращает ошибку, естественно. Буду благодарен за готовый код.</p><p>Читаю строку так.</p><div class="codebox"><pre><code>readString(hProcess, dwAddress, dwLen) {
    if(!hProcess) {
        ErrorLevel := ERROR_INVALID_HANDLE
        return 0
    }
    
    VarSetCapacity(sRead, dwLen)
    dwRet := DllCall(    &quot;ReadProcessMemory&quot;
                        , &quot;UInt&quot;, hProcess
                        , &quot;UInt&quot;, dwAddress
                        , &quot;Str&quot;, sRead
                        , &quot;UInt&quot;, dwLen
                        , &quot;UInt*&quot;, 0
                        , &quot;UInt&quot;)
    if(dwRet == 0) {
        ErrorLevel := ERROR_READ_MEMORY
        return 0
    }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Drygok]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37379</uri>
			</author>
			<updated>2017-08-11T11:53:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118129#p118129</id>
		</entry>
</feed>
