Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Завершение дерева процессов   Найти похожие ветки 

 
lmatveev   (2004-02-26 20:03) [0]

Как реализовать функцию "Завершить дерево процессов" (которая есть в диспетчере задач Win2000 и XP)?
Задача завершить процессы, которые порождаются моим процессом. Но мне надо завершить не только их, а и те, которые из них породились.
Если кто знает как это сделать, то интересно было бы также узнать об аналогичных возможностях (или их отстутствии) в других ОС.


 
VMcL ©   (2004-02-26 21:27) [1]

TlHelp32.pas: TProcessEntry32.th32ParentProcessID


 
lmatveev   (2004-02-26 21:55) [2]

Т.е. если я правильно понял, надо получить список ВСЕХ процессов в системе, потом понять кто от кого порожден и в соответствующем порядке их прибивать? А попроще никак нельзя?


 
VMcL ©   (2004-02-26 22:30) [3]

>>А попроще никак нельзя?

AFAIK, нет.

>адо получить список ВСЕХ процессов в системе, потом понять кто от кого порожден

Не совсем. Только отсеять те, которые не являются "детями" нужного тебе "родителя".


 
lmatveev   (2004-02-26 22:43) [4]


> Не совсем. Только отсеять те, которые не являются "детями"
> нужного тебе "родителя".

Так в том то и дело, что "дети" нужного мне "родителя" тоже могут порождать процессы. Соответственно, мне сначала надо выстроить их иерархию, потом выкинуть те, которые вообще ко мне отношения не имеют, а уж потом прибивать снизу вверх...
И еще ведь нет гарантии, что пока я обрабатываю полученный список и пристреливую процессы из него, не создастся еще несколько новых процессов, которых у меня в списке не будет...


 
Cobalt ©   (2004-02-27 11:12) [5]

В виндах нет чёткой иерархии процессов.
Что ты будешь делать, если один из твоих потомков создаст свой потомок, а сам заверщится?
Связь между поколениями прервётся :(
И останется он (потомок во втором (или более) колене) болтаться неприкаянным.


 
Игорь Шевченко ©   (2004-02-27 11:44) [6]

Cobalt ©   (27.02.04 11:12)


> В виндах нет чёткой иерархии процессов.


Достаточно запустить Process Explorer от SysInternals и посмотреть на эту иерархию.


 
Cobalt ©   (2004-02-27 11:46) [7]

Извиняюсь, надо было слово чёткой выделить.


 
Eagle-XK ©   (2004-02-27 16:35) [8]

А что будет, если завершить не дерево, а просто сам небоходимый процесс? Так точно не покатит, ась?


 
lmatveev   (2004-02-27 17:36) [9]


> Eagle-XK ©   (27.02.04 16:35) [8]

Точно. Уже пробовал...

> Cobalt ©   (27.02.04 11:12) [5]


> И останется он (потомок во втором (или более) колене) болтаться
> неприкаянным.

И пусть болтается. Такие случаи я рассматривать не буду.


 
DeadMeat ©   (2004-02-27 18:27) [10]

А если у тебя выстроиться большое дерево, процессов так на 8-восемь и более и их родительский процесс закроется... Тогда как ты закроешь остальные...??


 
lmatveev   (2004-02-27 19:05) [11]


> DeadMeat ©   (27.02.04 18:27) [10]

Никак. У меня задача такая: Есть хэндлы процессов, которые я запустил. В определенный момент надо прибить то, что я запускал и то, что запускалось из тех процессов, которые я запускал. Если какие-нибудь из связующих процессов пристрялятся раньше - значит так тому и быть. Это, естественно, никак по другому не сделать


 
DeadMeat ©   (2004-02-28 14:06) [12]

В принципе, можно по таймеру проверять список процессов. При появлении нового, смотреть PID его родителя, если он известен (т.к. Есть хэндлы процессов, которые я запустил) то занести PID этого дитя в этот-же список. А потом убивать всех поочерёдности. Естественно, если какой-либо процесс исчез, то и его PID тоже надо убрать из списка.
Короче попробуй. Может получиться.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.103 c
6-1077882441
ALeX.B.
2004-02-27 14:47
2004.04.25
Как ускорить работу ICMP из ICS(KOL)?


1-1081334625
_Павел_
2004-04-07 14:43
2004.04.25
Какой элемент можества TCustomDrawState отвечает за...


4-1077785537
@ac
2004-02-26 11:52
2004.04.25
Как закрыть какое-либо стороннее приложение, зная его имя и папку


14-1080655768
YurikGl
2004-03-30 18:09
2004.04.25
ebay.com


1-1081529987
tivispider
2004-04-09 20:59
2004.04.25
Проблема с StringGrid