Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: PID <- ShellExecute Добавлено: 20.04.06 20:02  

Автор вопроса:  gvozd | Web-сайт: www.gvozdsoft.com
Как получить PID проги, запущенной через ShellExecute?

Ответить

  Ответы Всего ответов: 19  

Номер ответа: 1
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 20.04.06 22:15
Если процесс запущен тобой, и ты знаешь имя процесса или имя файла, то PID можно найти через snapshot.
Если имя процесса или имя файла неизвестно, то из значения, возвращаемого ShellExecute, ничего не получишь.

Ответить

Номер ответа: 2
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #2
Добавлено: 21.04.06 09:26
Да, прога запущена мной, но ведь может быть N-ное количество экземпляров проги, и как узнать какой из них был запущен мной?

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 21.04.06 11:34
Ну, если ты запускаешь именно прогу, то запускай через CreateProcess. Получишь PID без проблем.

Ответить

Номер ответа: 4
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #4
Добавлено: 21.04.06 16:57
А если мне надо запустить ярлык или документ?

Ответить

Номер ответа: 5
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #5 Добавлено: 21.04.06 17:23
Очень просто: составляешь список PID приложений, запущеных непосредственно перед запуском твоего документа. Запускаешь документ, и снова составляешь список. Сравниваешь два списка. Выводы делаешь сам.

Ответить

Номер ответа: 6
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #6
Добавлено: 21.04.06 18:09
Это уже обсуждалось.
http://vbnet.ru/forum/show.aspx?id=89641

Ответить

Номер ответа: 7
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #7
Добавлено: 21.04.06 18:56
Мда, не лучший способ... Придется Shell юзать или Create Process...

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 22.04.06 01:23
Всё уже рассказали, но вот вспоминается мне в диспетчере "Завершить дерево процессов" т.е. вместе с выбранным и все которые были запущены этим процессов. Я думаю стоит порыть в эту сторону, возможно и получится получить полный список PID всех тех программ которые запустила наша...

Ответить

Номер ответа: 9
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #9
Добавлено: 22.04.06 09:45
Да, кстати идея неплохая.

Ответить

Номер ответа: 10
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #10
Добавлено: 22.04.06 13:47
А как узнать это дерево?

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 22.04.06 15:09
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=38135
Предпоследний комментарий

Ответить

Номер ответа: 12
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #12 Добавлено: 22.04.06 16:44
HACKER
Предпоследний комментарий сильно отличется от первого ответа?

Сделать snapshot и посмотреть кто кого запустил - дело пяти минут, а жуется уже третий день :)

Ответить

Номер ответа: 13
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 23.04.06 07:02
Если присмотреться - нет. Если отвечать через почту, а при этом история и хронология ответов теряется, да и не особо то просматриваю старые ответы на тему, вообщем если первый твой пост незаметить, тогда тот предпоследний комментарий очень даже кстати :) Да и народ тут на форуме такой, надо мало того что АПстенку, но ещё и несколько раз...

Ответить

Номер ответа: 14
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #14
Добавлено: 23.04.06 10:52
Спасибо!

Ответить

Номер ответа: 15
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #15 Добавлено: 24.04.06 10:15
Сделать snapshot и посмотреть кто кого запустил - дело пяти минут

Безусловно, но проблемы то это не решает. th32ParentProcessID и szExeFile отнюдь не однозначно описывают процесс. И выяснить, какой процесс был запущен данной командой не так просто. Можно, конечно, вести внутреннюю хронологию дочерних процессов, но не уверен что это будет корректно при запуске процесса через ShellExecute (ибо прямого запуска процесса тут нет, и кто будет парентом - твое приложение и, скажем, эксплорер - сказать можно только проверив лично).

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам