Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

Как програмно узнать сколько занимает памяти чужое приложение? 


kirya85   (2002-01-16 09:06) [0]

Как програмно узнать сколько занимает памяти чужое приложение?
Желательно физичиской и виртуальной памяти отдельно.



andrucco   (2002-01-16 10:47) [1]

Вот кусок кода:
..
hWn := FindWindow(nil, SomeSTR);
PrintMemoryInfo(H);
..

procedure PrintMemoryInfo(ProcessID:DWORD);
var
hProcess : THANDLE;
pmc: PROCESS_MEMORY_COUNTERS;

begin
// Получаем дескриптор процесса для получения информации о нем
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, processID );
// Функция возвращает информацию о памяти, занимаемой процессом
if GetProcessMemoryInfo( hProcess, @pmc, sizeof(pmc))
then begin
AssignFile(F, "c:\Spy1.txt");

{$I-}
Append(F);
{$I+}
IF IOResult <> 0 then Rewrite(F);
Writeln(F, DateTimetoStr(Now));
Writeln(F, "---------------------------------------------");
Writeln(F, "Err: "+ FloatToStr(pmc.PageFaultCount));
Writeln(F, "Max.Mem.(Kb): "+ FloatToStr(pmc.PeakWorkingSetSize/1024));
Writeln(F, "LPul max: "+ FloatToStr(pmc.QuotaPeakPagedPoolUsage));
Writeln(F, "LPul: "+ FloatToStr(pmc.QuotaPagedPoolUsage));
Writeln(F, "NLPul max: "+ FloatToStr(pmc.QuotaPeakNonPagedPoolUsage) );
Writeln(F, "NLPul: "+ FloatToStr(pmc.QuotaNonPagedPoolUsage) );
Writeln(F, "Vmem.(Kb): "+ FloatToStr(pmc.PagefileUsage/1024));
Writeln(F, "Max Vmem (Kb): "+ FloatToStr(pmc.PeakPagefileUsage/1024));
Writeln(F, "Mem(Kb): " + FloatToStr(pmc.WorkingSetSize/1024));
Writeln(F, "---------------------------------------------");
Close(F);
end;
// Закрываем дескриптор
CloseHandle( hProcess );
end;



kirya85   (2002-01-16 20:41) [2]

GetProcessMemoryInfo( hProcess, @pmc, sizeof(pmc)) всегда возвращает False, у меня токое подозрение, что это NT-функция.



cdaDmitriy   (2002-01-27 10:44) [3]

>> andrucco © ВЫ ВОБЩЕ ПРОВЕРЯЛИ КОД ИЛИ НЕТ




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.037 c
1-90966           kull                  2002-03-14 03:04  2002.03.28  
Функция поиска подстроки


1-90878           JustMan               2002-03-17 15:20  2002.03.28  
Как узнать в какой папке находится Windows?


3-90799           KHunter               2002-03-04 15:57  2002.03.28  
EhLib


3-90793           Alex_R                2002-03-01 18:02  2002.03.28  
Как определить, что использовать ExecSQL или Open


1-90874           lipskiy               2002-03-16 16:40  2002.03.28  
Как однозначно проверить, существует ли объект (создан ли, не испорчен ли)?