<?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=13918</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=13918&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Частный рабочий набор».]]></description>
		<lastBuildDate>Sun, 15 Jul 2018 13:54:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127082#p127082</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Там и алгоритм объяснён.</p></blockquote></div><p>Этот скрипт вообще просматривает все страницы подряд, насколько я понял. Надо попробовать так.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 15 Jul 2018 13:54:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127082#p127082</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127080#p127080</link>
			<description><![CDATA[<p>Это я понял, остаётся вопрос с диапазонами просмотра страниц для разных битностей.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 15 Jul 2018 13:48:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127080#p127080</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127070#p127070</link>
			<description><![CDATA[<p><strong>teadrinker</strong> <br />Только сейчас заметил твою ссылку. Вроде 2 разных подхода получается.<br />Из справки я понял, что первым вызовом QueryWorkingSet надо получить NumberOfEntries, на её основе задать размер структуры _PSAPI_WORKING_SET_INFORMATION, ещё раз вызвать QueryWorkingSet, в ней будут указатели на PSAPI_WORKING_SET_BLOCK WorkingSetInfo[1 - и далее].<br /></p><div class="codebox"><pre><code>typedef struct _PSAPI_WORKING_SET_INFORMATION {
  ULONG_PTR               NumberOfEntries;
  PSAPI_WORKING_SET_BLOCK WorkingSetInfo[1];
} PSAPI_WORKING_SET_INFORMATION, *PPSAPI_WORKING_SET_INFORMATION;</code></pre></div><p>Их надо перебрать, и суммировать те, в которых есть флаг Shared.<br /></p><div class="codebox"><pre><code>typedef union _PSAPI_WORKING_SET_BLOCK {
  ULONG_PTR Flags;
  struct {
    ULONG_PTR Protection : 5;
    ULONG_PTR ShareCount : 3;
    ULONG_PTR Shared : 1;
    ULONG_PTR Reserved : 3;
    ULONG_PTR VirtualPage : 52;
    ULONG_PTR VirtualPage : 20;
  };
} PSAPI_WORKING_SET_BLOCK, *PPSAPI_WORKING_SET_BLOCK;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 15 Jul 2018 10:03:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127070#p127070</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127068#p127068</link>
			<description><![CDATA[<p>Так там вроде алгоритма то нет, надо размер страниц умножить на количество страниц.<br />Размер узнается GetPerformanceInfo, а вот примеров с QueryWorkingSet на анк я не нашёл. Там вроде указатель на массив этих самых страниц.</p><p>Выдаёт общую память.<br /></p><div class="codebox"><pre><code>
ProcessID := 8672
hProcess := DllCall(&quot;OpenProcess&quot;, &quot;uint&quot;, 0x0010|0x0400, &quot;int&quot;, 0, &quot;uint&quot;, ProcessID, &quot;ptr&quot;)
nSz := VarSetCapacity(QWS, A_PtrSize)
DllCall(&quot;psapi.dll\QueryWorkingSet&quot;, &quot;ptr&quot;, hProcess, &quot;ptr&quot;, &amp;QWS, &quot;uint&quot;, nSz)
MsgBox % Round(NumGet(QWS, 0, &quot;UInt&quot;) * 4096 / 1024) &quot; KB&quot;
MsgBox % A_LastError 
DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hProcess)
</code></pre></div><p>Структура, <a href="https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-_psapi_working_set_information">https://docs.microsoft.com/en-us/window … nformation</a>.<br />Нужен PSAPI_WORKING_SET_BLOCK WorkingSetInfo, а из него ULONG_PTR Shared.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 14 Jul 2018 23:11:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127068#p127068</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127064#p127064</link>
			<description><![CDATA[<p>Мне кажется проще перевести этот питоновский скрипт:<br /><a href="https://stackoverflow.com/questions/33216150/getting-same-process-details-as-task-manager-in-windows">https://stackoverflow.com/questions/332 … in-windows</a><br />Там и алгоритм объяснён.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sat, 14 Jul 2018 18:32:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127064#p127064</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127062#p127062</link>
			<description><![CDATA[<p>В логике разобрался, но не совсем понимаю одну вещь:</p><div class="codebox"><pre><code>if ( (dPageAddress &lt; 0xC0000000) || (dPageAddress &gt; 0xE0000000) )</code></pre></div><p>0xC0000000 — это, видимо, user space в 32-битных процессах. Что такое 0xE0000000? И какие значения будут соответствовать для 64 бит?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 14 Jul 2018 17:51:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127062#p127062</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=127060#p127060</link>
			<description><![CDATA[<p>Ну как разобрался?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sat, 14 Jul 2018 16:57:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=127060#p127060</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126806#p126806</link>
			<description><![CDATA[<p>Там не так всё просто. <a href="https://www.codeproject.com/Articles/87529/Calculate-Memory-Working-Set-Private-Programmatica">Вот</a> код для 32 бит, я не совсем понимаю его логику, попробую разобраться.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 07 Jul 2018 21:59:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126806#p126806</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126798#p126798</link>
			<description><![CDATA[<p>Может посчитать через VirtualQueryEx MEM_PRIVATE?<br /><a href="https://docs.microsoft.com/en-us/windows/desktop/api/winnt/ns-winnt-_memory_basic_information">https://docs.microsoft.com/en-us/window … nformation</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Sat, 07 Jul 2018 17:26:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126798#p126798</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Частный рабочий набор]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126796#p126796</link>
			<description><![CDATA[<p>Вот так можно узнать размер частного рабочего набора процесса через WMI:<br /></p><div class="codebox"><pre><code>PID := 2364
MsgBox, % ComObjGet(&quot;winmgmts:&quot;).InstancesOf(&quot;Win32_PerfRawData_PerfProc_Process WHERE IDProcess=&quot; . PID).ItemIndex(0).WorkingSetPrivate//1024 . &quot; kB&quot;</code></pre></div><p>А как правильно посчитать его через winapi?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 07 Jul 2018 16:34:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126796#p126796</guid>
		</item>
	</channel>
</rss>
