|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 14, 2004 13:47:49 Как проверить работает ли процесс консольного приложения, или он уже завершился, если у меня есть ProcessID и хандл этого процесса. |
|
|
Дата: Авг 14, 2004 14:05:17 Шрайбер: "...Структура DISPATCH_HEADER в начале объекта процесса свидетельствует о том, что этот объект является объектом синхронизации... Объект процесса переходит в сигнальное состояние после того, как процесс завершил свою работу..." WaitForSingleObject(hProcess,INFINITE). |
|
|
Дата: Авг 14, 2004 14:19:23 Чё то не совсем то, на сколько я понял WaitForSingleObject стопорит поток из которого вызвана эта функция до тех пор пока объект (в моём случае это - консольное приложение) не завершит свою работу, а мне всего-то надо функцию на подобие: ProcessIsRunning(ProcessID:DWORD):Boolean |
|
|
Дата: Авг 14, 2004 14:33:59 функцию на подобие: ProcessIsRunning exitcode dd ? invoke GetExitCodeProcess,hProcess,addr exitcode cmp exitcode,STILL_ACTIVE jz running |
|
|
Дата: Авг 14, 2004 15:49:10 Оффтоп, небольшая оптимизация: push eax invoke GetExitCodeProcess,hProcess,esp pop eax cmp eax,STILL_ACTIVE jz running |
|
|
Дата: Авг 14, 2004 16:14:49 небольшая оптимизация: Хороший приёмчик , беру на заметку ;) Довольно часто может пригодиться |
|
|
Дата: Авг 14, 2004 20:32:53 Iczelion, тутор № ..., короче про Процессы ;-) |
|
|
Дата: Авг 15, 2004 10:17:18 · Поправил: Eraser bogrus THX Asterix THX наткнулся ещё на №21 про пайпы - тоже пригодилось, только в этом случае не отсылается ни CTRL_C_EVENT ни CTRL_C_EVENT. :((( А TerminatePeocess(hProcess) в этом случае нормальный способ выхода из консольной программы или это подобие RESET вместо ShutDown'a :)) |
|
|
Дата: Авг 16, 2004 04:48:01 Eraser на сколько я понял WaitForSingleObject стопорит поток Что/кто мешает в качестве второго параметра не указывать INFINITE? |
|
|
Дата: Авг 16, 2004 16:26:09 Eraser q_q Цитата из MSDN'а про WaitForSingleObject: If dwMilliseconds is zero, the function tests the object's state and returns immediately. |
|
|
Дата: Авг 17, 2004 03:49:58 Sk. Inc. Да я собственно и не против. |
|
|
Дата: Авг 17, 2004 16:06:01 bogrus Как насчет "хитрого" процесса, который делает ExitProcess(STILL_ACTIVE);? ;) Все-таки WaitForSingleObject надежнее будет... |
|
|
Дата: Авг 17, 2004 18:07:39 · Поправил: bogrus Гм.. действительно . Ещё как вариант можна заюзать GetProcessTimes (только на NT) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074 |