Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 21:50   #1
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию Размер памяти процесса

Собственно сабж. Нужно узнать размер памяти в байтах, который занимает процесс. Написал такую функцию, но она возвращает абсолютно феерические числа:
Код:
uses PsAPI
...
function MemSize(H: Cardinal): Cardinal;
var
pmc: TProcessMemoryCounters;
begin
pmc.cb := SizeOf(TProcessMemoryCounters) ;
if GetProcessMemoryInfo(H, @pmc, SizeOf(pmc)) then
Result := pmc.WorkingSetSize
else
RaiseLastOSError;
end;
В гугле искал, в мсдн тоже. Если есть у кого готовый код, или решение по компактнее VirtualQuery, прошу отписать.
ZaRDaK вне форума Ответить с цитированием
Старый 25.09.2010, 22:33   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Вы всё правельно узнаёте...

Фиерические? Надеюсь вы не забыли что размер в байтах...


И вот отличный пример по "выдиранию" всевозможной инфы о процессах http://rouse.drkb.ru/winapi.php#taskmon

Последний раз редактировалось Человек_Борща; 25.09.2010 в 22:38.
Человек_Борща вне форума Ответить с цитированием
Старый 25.09.2010, 22:43   #3
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Нет, не забыл, в байтах как раз и надо.
Если важно, то
Win 7, Delphi 2010.
ZaRDaK вне форума Ответить с цитированием
Старый 25.09.2010, 23:05   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Можешь привести маленький пример использования функции (В виде исходника)?

Я пробую использовать , H это pid процесса если я правельно понял?
Но при вводе pid возвращает что неверный дескриптор.

Последний раз редактировалось Человек_Борща; 25.09.2010 в 23:11.
Человек_Борща вне форума Ответить с цитированием
Старый 25.09.2010, 23:09   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Под абстрактное понятие "память процесса" подходят не менее пяти вещей.

Запустите Process Explorer и посмотрите, какие значения можно выбрать для показа в секции "память процесса".
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 25.09.2010, 23:48   #6
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

GunSmoker, спасибо.
Вместо WorkingSet нужны были PirvateBytes.
Тему закрывайте.
ZaRDaK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита памяти процесса. worldhero Фриланс 2 25.07.2010 11:15
Чтение данных из памяти процесса (need help) lexastik Win Api 10 26.02.2009 20:50
Редактирование памяти процесса (Delphi) Air Помощь студентам 4 17.10.2008 15:19
Редактирование памяти процесса Air Win Api 6 16.02.2008 20:15