| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > CreateProcess, слежение за программой в потоке |
| Автор: ЧеловекБорща 6.10.2010, 13:17 |
| Доброго времени суток! Создаю поток TThread в нем используя CreateProcess запускаю программу, дале WaitForSingleObject(Pi.hProcess, INIFINITE) жду завешения программы. Как на протяжении всей работы программы-потока выполнять действие? К примеру следить за системным временем: Если системное время совподает с заданным пользователем то производить действие(Закрывать поток, выводить сообщение) . Или к примеру на протяжении всей работы программы-потока следить за нагрузкой програмы на процессор. Как? |
| Автор: bems 6.10.2010, 21:53 |
| Для начала: что ты понимаешь под программой-потоком. Ты в своем потоке создаешь новый процесс с его первичным потоком. Что такое программа-поток не понятно. |
| Автор: ЧеловекБорща 11.10.2010, 12:02 |
| Моя программа создаёт поток TThread, а тот в свою очередь запускает другую программу используя CreateProcess. Поток tthread ждёт завершения программы(WaitForSingleObject(pi.hProcess,INFINIE), как на протяжении всего времени работы потока tthread(Программы) выполнять действие? К примеру следить за системным временем и в назначенноевремя закрыть программу? |
| Автор: bems 11.10.2010, 18:19 |
| ждать не INIFINITE, а указать интервал |
| Автор: ЧеловекБорща 12.10.2010, 16:20 |
| А если необходимо ждать завершения процесса(infinite) и ждать определённого момента? К примеру следить за временем и в определенный момент завершить процесс? Или на протяжении всего ождиния завершения выполнять какое-то действие... Проще говоря "таймер в потоке"... |
| Автор: bems 12.10.2010, 18:27 |
| посчитай интервал с момента создания процесса, до момента когда нужно завершить и указывай его в WaitForSingleObject. Если она возвращает WAIT_TIMEOUT, то процесс нужно завершить |
| Автор: ЧеловекБорща 12.10.2010, 18:35 |
Можно пояснить, пожалауйста? |