Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 как найти PID потомков потомков mstsc  [new]
FIL23
Member

Откуда:
Сообщений: 245
Доброго дня.

Интересует вопрос как найти порождаемые объекты.
А схема тут такова.
Прога запускает CMD, потом CMD вызывает mstsc , а mstsc еще раз вызывает mstsc. И вот PID этого последнего mstsc неплохо было бы знать.

Я делаю по извращенски , запускаю поток и снапшотю все процессы до окончания вызова. после в каждом снапшоте ищу дочерние PIDы родителей, и т.д. ... но это не всегда срабатывает.

Знаю что по изврату , хочу чтобы по красивее было, как реализовать?
9 янв 17, 13:34    [20084626]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21388
Что-то мне подсказывает, что нужны хуки на это дело. Тогда всё будет четко.
9 янв 17, 13:41    [20084641]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21388
Во, на ловца и зверь бежит https://msdn.microsoft.com/en-us/library/mt764085.aspx
9 янв 17, 14:03    [20084708]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
FIL23
Member

Откуда:
Сообщений: 245
Спасибо за ссылку, открыл почитал, но вот как этим пользоваться я не знаю, т.к. я не программист вообще ни разу. Просто люблю это дело.

Я поискал темы где упоминалась данная функция, но ни чего простого чего бы я понял не нашел.

Может объясните как эту информацию надо готовить или что почитать?

Спасибо.
10 янв 17, 18:42    [20090761]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 21388
FIL23
Я поискал темы где упоминалась данная функция, но ни чего простого чего бы я понял не нашел.

Это совсем печально...
http://processhacker.sourceforge.net
Такая ссылка тоже не поможет? Там полные исходники аналога Process Explorer-а, отслеживает в реальном времени создание/закрытие процессов.
11 янв 17, 09:41    [20092340]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
schi
Member

Откуда: Москва
Сообщений: 1153
FIL23
Спасибо за ссылку, открыл почитал, но вот как этим пользоваться я не знаю,


Я извиняюсь, конечно, а зачем он нужен, PID "последнего mstsc" ?

FIL23
Я делаю по извращенски , запускаю поток и снапшотю все процессы до окончания вызова. после в каждом снапшоте ищу дочерние PIDы родителей, и т.д. ... но это не всегда срабатывает


Из пользовательского режима иначе никак
11 янв 17, 10:30    [20092458]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
FIL23
Member

Откуда:
Сообщений: 245
wadman,

Он на Си :( я то Delphi ели как осиливаю.

На сколько будет правильно использовать HOOK?

В русскоязычном интернете кстати все ищут решение но ни кто им не делится :)

нашел что - то но не понятно что это и как работает.

schi ,

последний PID это как раз и есть рабочее окно, я через этот PID вызываю это окно.

Конечно , можно просто сделать снапшот до и снапшот процессов после , сравнить, найти новый процесс mstsc или даже по имени окна, и чере это узнать уже PID... но хочется по красоте, а соответственно это будет универсально.

Но пока тямы не хватает. Сейчас может тут чего путного на советуют.
11 янв 17, 19:14    [20095303]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
JaDi
Member

Откуда: JayDi из Сызрани
Сообщений: 1921
FIL23,

это красоте - это как? Чтобы уже была готовая системная функция типа GetSecondChildPID()?
11 янв 17, 19:44    [20095389]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
Bred eFeM
Member

Откуда:
Сообщений: 268
FIL23, красиво? - включи "Audit process tracking" и читай системный лог.
12 янв 17, 02:51    [20096484]     Ответить | Цитировать Сообщить модератору
 Re: как найти PID потомков потомков mstsc  [new]
schi
Member

Откуда: Москва
Сообщений: 1153
FIL23
последний PID это как раз и есть рабочее окно, я через этот PID вызываю это окно.


Видимо я чего-то не понимаю. mstsc - это подключение к терминальному серверу. Каким образом он еще один процесс запускает так, что "образуется рабочее окно" ? На другом серверу ?
12 янв 17, 10:55    [20097211]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить