|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.04.2009, 13:38 | #1 | |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
Использование Оп.памяти программами
Помогите плз
Необходимо определить сколько оперативной памяти используют запущеные программы. Есть код (он находит все запущеные программы), а как определить сколько оп.памяти они используют, подскажите плз Цитата:
Последний раз редактировалось zonclayv; 03.04.2009 в 14:25. |
|
03.04.2009, 17:55 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
самое простое это использовать функцию GlobalMemoryStatus. Поле dwMemoryLoad задаёт процент использования памяти. Количество используемой памяти можно определить вычев из общего количества оперативной памяти количество свободной (dwTotalPhys-dwAvailPhys), но нельзя забывать что суммарное количество используемой памяти может быть больше чем количество оперативной. Тогда количество памяти используемой программами будет вычисляться по формуле dwTotalVirtual-dwAvailVirtual
|
03.04.2009, 20:23 | #3 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
rpy3uH, биг тебе спосибо
Ещё один вопрос: Как определить сколько использует оп. памяти каждая запущенная программа? |
03.04.2009, 20:40 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
это уже сложнее
надо юзать функцию NtQuerySystemInformation c флагом SYSTEM_PROCESS_INFORMATION |
03.04.2009, 21:18 | #5 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
а поподробней можно?
|
04.04.2009, 17:18 | #6 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
GetProcessMemoryInfo
Это функцие имхо проще будет. Как это сделать через NtQuerySystemInformation - не понимаю. Там ведь дается только оффсет на следующий элемент, а базового адреса в структуре нет, короче бред какой то.. а может отталкиваться нужно от нуля?
"Тяжело в учении, легко в бою" - А.В. Суворов
|
05.04.2009, 15:37 | #7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
В данном случае конечно лучше юзать GetProcessMemoryInfo
NtQuerySystemInformation универсальная функция и все API функции для получения статистики в итоге обращаются к ней и её подобным. (GetProcessMemoryInfo обращается к ZwQueryInformationProcess) Последний раз редактировалось rpy3uH; 05.04.2009 в 15:40. |
05.04.2009, 21:00 | #8 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
Подскажите плз, хоть в кратце, как воспользоваться функцией GetProcessMemoryInfo в данном случае.
|
05.04.2009, 21:05 | #9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
пример использования функции из MSDN
Код:
Код:
Последний раз редактировалось rpy3uH; 05.04.2009 в 21:08. |
05.04.2009, 21:23 | #10 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
rpy3uH, а можно аналогичный пример для NtQuerySystemInformation? Я попытался сделать вот такую структуру для этой функции:
Код:
PS: Попробовал помочь и самому стало интересно
"Тяжело в учении, легко в бою" - А.В. Суворов
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчёт количества памяти занимаемого программами | zonclayv | Win Api | 0 | 19.03.2009 22:03 |
Управление другими программами | L_M | Общие вопросы Delphi | 4 | 04.05.2008 02:53 |
работа с чужими программами | Rend1 | Win Api | 31 | 02.03.2008 16:42 |
Работа с другими программами | kurazh77 | Общие вопросы Delphi | 6 | 09.10.2007 22:07 |