WinAPI: Получить список запущенных процессов на Delphi

Я считаю что данная тема довольно актуальна и для своих программ иногда приходится придумывать механизмы которые к примеру не позволяли запускать одновременно несколько копий программ. Для реализации такого механизма достаточно описать в своем проекте функцию получения списка запущенных процессов и в зависимости от своих нужд работать с полученным списком.

Ниже приведен пример программы которая выводит список процессов.

Понравилась статья? Поделиться с друзьями:
Комментариев: 4
  1. Александр

    prcs: array[0..$FFF] of dword; //массив для хранения

    Вот это не самый правильный фрагмент. Если в системе более, чем 4096 процессов, то только первые 4096 попадут в список. Документация говорит, что если размер использованного буфера cP после функции EnumProcesses равен размеру вашего буфера, то надо снова вызвать EnumProcesses с уже большим буфером. И так до тех пор, пока ваш буфер не будет заполняться до конца. Вот такая вот виндовая технология. ;-)

    Понятно, что для домашнего компьютера 4096 весьма значительная и слабо достижимая цифра, но вот для промышленных систем — легко. У нас один банк, работающий на виндах, имеет только одних телнет-соединений более 4000 (уже по одному процессу на соеденение). Так что там количество процессов гораздо больше 4096.

    Почему знаю, потому что писал аналогичную функцию и наступил на эти грабли. ;-)

    1. lizz

      Согласен, но не думал что может быть их так много!Оо Спасибо, ценное замечание. =)

  2. adsasd

    А как на листбокс поставить?

    1. Аноним

      ТЫ нуб. сменить название компонента и все

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: