Главная страница
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.038 c
7-1077969009
Duk
2004-02-28 14:50
2004.04.25
asm


1-1081389706
Slavik_v
2004-04-08 06:01
2004.04.25
Узнать код нажатой функциональной кнопки


14-1080795363
Иксик
2004-04-01 08:56
2004.04.25
Как меня сегодня кинули!!! И главное с утра пораньше.


11-1065517049
Yury Sidorov
2003-10-07 12:57
2004.04.25
Неуказанное важное изменение в KOL 1.85


14-1080635119
Opryshok
2004-03-30 12:25
2004.04.25
MS SQL Server vs MSDE