Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
11-1063797669
Vadim S
2003-09-17 15:21
2004.04.25
Application.


7-1077458116
DuhcmanSoft
2004-02-22 16:55
2004.04.25
Работа с процессами в ОС Win2k


11-1042971278
Igit
2003-01-19 13:14
2004.04.25
Горизонтальный скролл в ListBox


14-1080673413
alexsandri
2004-03-30 23:03
2004.04.25
ТУТ такие вот дела, хотлось бы kyix поставит на red had 9


4-1076838918
Viktor Kushnir
2004-02-15 12:55
2004.04.25
Как загрузить через CreateProcess ярлык (*.lnk)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский