<?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>https://forum.script-coding.com/viewtopic.php?id=9520</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9520&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Функция чтения памяти не выдавала ошибку».]]></description>
		<lastBuildDate>Tue, 22 Apr 2014 18:17:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Функция чтения памяти не выдавала ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82149#p82149</link>
			<description><![CDATA[<p>Если в runtime возникают ошибки их можно подавить выполняя код в блоке команды try.<br /></p><div class="codebox"><pre><code>try ProcessReadMemory(...) </code></pre></div><p> это&nbsp; есть пример, вместо многоточия - параметры.<br /></p><div class="codebox"><pre><code>try value := ProcessReadMemory(...) </code></pre></div><div class="codebox"><pre><code>try {
    value := ProcessReadMemory(...)
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (bWRmeA)]]></author>
			<pubDate>Tue, 22 Apr 2014 18:17:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82149#p82149</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция чтения памяти не выдавала ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82147#p82147</link>
			<description><![CDATA[<div class="quotebox"><cite>bWRmeA пишет:</cite><blockquote><div class="codebox"><pre><code>try ProcessReadMemory(...)</code></pre></div><p>Если ошибку нужно обрабатывать:<br /></p><div class="codebox"><pre><code>try ProcessReadMemory(...)
catch e {
...
}</code></pre></div></blockquote></div><p>Можно на примере показать, а то не могу понять?(</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Tue, 22 Apr 2014 18:10:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82147#p82147</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Функция чтения памяти не выдавала ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82145#p82145</link>
			<description><![CDATA[<div class="codebox"><pre><code>try ProcessReadMemory(...)</code></pre></div><p>Если ошибку нужно обрабатывать:<br /></p><div class="codebox"><pre><code>try ProcessReadMemory(...)
catch e {
...
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (bWRmeA)]]></author>
			<pubDate>Tue, 22 Apr 2014 17:37:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82145#p82145</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Функция чтения памяти не выдавала ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82144#p82144</link>
			<description><![CDATA[<p>Привет. Для чтения памяти я использую эту функцию.<br /></p><div class="codebox"><pre><code>ProcessReadMemory(address, processIDorName, type := &quot;Int&quot;, numBytes := 4) {
    VarSetCapacity(buf, numBytes, 0)
    VarSetCapacity(numBytesRead, A_PtrSize, 0)

    Process Exist, %processIDorName%
    if !processID := ErrorLevel
        throw Exception(&quot;Invalid process name or process ID:`n`n&quot;&quot;&quot; . processIDorName . &quot;&quot;&quot;&quot;)

    if !processHandle := DllCall(&quot;OpenProcess&quot;, &quot;Int&quot;, 24, &quot;UInt&quot;, 0, &quot;UInt&quot;, processID, &quot;Ptr&quot;)
        throw Exception(&quot;Failed to open process.`n`nError code:`t&quot; . A_LastError)

    result := DllCall(&quot;ReadProcessMemory&quot;, &quot;Ptr&quot;, processHandle, &quot;Ptr&quot;, address, &quot;Ptr&quot;, &amp;buf, &quot;Ptr&quot;, numBytes, &quot;PtrP&quot;, numBytesRead, &quot;UInt&quot;)

    if !DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, processHandle, &quot;UInt&quot;) &amp;&amp; !result
        throw Exception(&quot;Failed to close process handle.`n`nError code:`t&quot; . A_LastError)

    if !result
        throw Exception(&quot;Failed to read process memory.`n`nError code:`t&quot; . A_LastError)

    if !numBytesRead
        throw Exception(&quot;Read 0 bytes from the`n`nprocess:`t&quot; . processIDorName . &quot;`naddress:`t&quot; . address)

    return NumGet(buf, 0, type)
}</code></pre></div><p>Когда нельзя прочитать что-то из памяти то выдается ошибка и эта ошибка мешает выполнять скрипт дальше. Если смотреть на адрес через программу СЕ, то когда там нет значений там вопросительные знаки. Дело в том что при определеных условиях в одном из адрессов значение может быть 100, а может и вопросительные знаки, тоесть скрипт не может прочитать и поетому начинает выдавать ошибку. Как сделать так что бы функция, когда не может прочитать значение по адресу не выдавала ошибку и соответственно не тормозила бы скрипт?</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Tue, 22 Apr 2014 17:33:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82144#p82144</guid>
		</item>
	</channel>
</rss>
