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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 21:44   #11
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

NextEntryOffset задаёт разинцу между текущей и следующей информацией о процессе. К адресу текущей информации прибавляем NextEntryOffset получаем адрес информации о следующем процессе.

скачать пример можно отсюда

Последний раз редактировалось rpy3uH; 05.04.2009 в 21:47.
rpy3uH вне форума Ответить с цитированием
Старый 31.03.2010, 17:03   #12
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

продолжим тему
что я делаю не так с вызовом GetProcessMemoryInfo?
Код:
var
  procesess: array[0..$FFF] of DWORD;
  i, count, cm: cardinal;
  ph: THandle;
  ModName: array[0..MAX_PATH] of char;
  mh: HMODULE;
  pmc: PPROCESS_MEMORY_COUNTERS;
  List: TStringList;
begin
  if not EnumProcesses(@procesess, SizeOf(procesess), count) then
    Exit
  else
  begin
    List := TStringList.Create;
    for i:=0 to count div 4 - 1 do
    begin
      ph := OpenProcess(SYNCHRONIZE or PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, procesess[i]);
      if ph > 0 then
      begin
        EnumProcessModules(ph, @mh, sizeOf(mh), cm);
        GetModuleBaseName(ph, mh, ModName, sizeOf(ModName));
        if GetProcessMemoryInfo(ph, @pmc, sizeOf(pmc)) then
            List.Add(format('%s) %s - %s', [IntToStr(i), string(ModName), IntToStr(round(pmc.WorkingSetSize / 1024 / 1024))]))
        else
          List.Add(format('%s) %s - ', [IntToStr(i), string(ModName)]));
        CloseHandle(ph);
      end;
    end;
  end;
  Memo1.Lines.Clear;
  Memo1.Lines.AddStrings(List);
хочется получить объем занимаемый прогой в памяти (для каждой из имеющейся в списке), но в результате имеем только список без объема

апд
сам же себе и отвечу
вот такая добавочка в код спасла "отца русской демократии"
Код:
        cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
        GetMem(pmc, cb);
        pmc^.cb := cb;
        if GetProcessMemoryInfo(ph, pmc, cb) then

Последний раз редактировалось soleil@mmc; 31.03.2010 в 17:47. Причина: нашел решение
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчёт количества памяти занимаемого программами 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