![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
![]()
Помогите плз
Необходимо определить сколько оперативной памяти используют запущеные программы. Есть код (он находит все запущеные программы), а как определить сколько оп.памяти они используют, подскажите плз Цитата:
Последний раз редактировалось zonclayv; 03.04.2009 в 14:25. |
|
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
самое простое это использовать функцию GlobalMemoryStatus. Поле dwMemoryLoad задаёт процент использования памяти. Количество используемой памяти можно определить вычев из общего количества оперативной памяти количество свободной (dwTotalPhys-dwAvailPhys), но нельзя забывать что суммарное количество используемой памяти может быть больше чем количество оперативной. Тогда количество памяти используемой программами будет вычисляться по формуле dwTotalVirtual-dwAvailVirtual
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
![]()
rpy3uH, биг тебе спосибо
Ещё один вопрос: Как определить сколько использует оп. памяти каждая запущенная программа? |
![]() |
![]() |
![]() |
#4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
это уже сложнее
надо юзать функцию NtQuerySystemInformation c флагом SYSTEM_PROCESS_INFORMATION |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
![]()
а поподробней можно?
|
![]() |
![]() |
![]() |
#6 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
GetProcessMemoryInfo
Это функцие имхо проще будет. Как это сделать через NtQuerySystemInformation - не понимаю. Там ведь дается только оффсет на следующий элемент, а базового адреса в структуре нет, короче бред какой то.. а может отталкиваться нужно от нуля?
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
В данном случае конечно лучше юзать GetProcessMemoryInfo
NtQuerySystemInformation универсальная функция и все API функции для получения статистики в итоге обращаются к ней и её подобным. (GetProcessMemoryInfo обращается к ZwQueryInformationProcess) Последний раз редактировалось rpy3uH; 05.04.2009 в 15:40. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.12.2008
Сообщений: 13
|
![]()
Подскажите плз, хоть в кратце, как воспользоваться функцией GetProcessMemoryInfo в данном случае.
|
![]() |
![]() |
![]() |
#9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
пример использования функции из MSDN
Код:
Код:
Последний раз редактировалось rpy3uH; 05.04.2009 в 21:08. |
![]() |
![]() |
![]() |
#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 |