Страница: 1 | 2 |
Вопрос: PID <- ShellExecute
Добавлено: 20.04.06 20:02
Автор вопроса: gvozd | Web-сайт:
Ответы
Всего ответов: 19
Номер ответа: 16
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #16
Добавлено: 24.04.06 12:39
LamerOnLine
Если рассуждать так как ты рассуждаешь, то парент может быть только один: процесс System и более никого, ибо все следы ведут к нему.
Речь не идёт о субпарентах и субчайлдах. Только в пределах одной ступени.
Строить полное дерево со всей иерархией отцов и детей смысла нет. Т.к. дед не рожает внука.
Чтобы отследить все процессы, запущеные данным процессом в одном поколении, ParendID более чем достаточно. А следующие поколения - они запущены не нашим процессом, хотя и потомками нашего. Они нас не интересуют.
Номер ответа: 17
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #17
Добавлено: 24.04.06 12:52
Я немного о другом - будет ли ParentID процесса, созданного запуском документа через ShellExecute, именно ID того процесса, который запускал ShellExecute? Уверенности нет, ибо не проверял.
Номер ответа: 18
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #18
Добавлено: 24.04.06 13:10
Именно так и будет.
Моя прога (PID=2032) запускает через ShellExecute файл c:\1.txt.
У появившегося процесса Notepad ParentID=2032.
Номер ответа: 19
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #19
Добавлено: 24.04.06 13:16
Ну раз так, то несколько проще. Хотя такой метод поиска последнего запущенного процесса, ИМХО, не является ни надежным, ни оптимальным.
Фактически, можно с такими же затратами узнать какое приложение ассоциировано с данным расширением и запустить его через Shell (CreateProcess).