Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CreateProcess, слежение за программой в потоке, Пака паботает какой-то Thread следить  
:(
    Опции темы
ЧеловекБорща
  Дата 6.10.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Доброго времени суток!


Создаю поток TThread в нем используя CreateProcess запускаю программу, дале WaitForSingleObject(Pi.hProcess, INIFINITE) жду завешения программы.

Как на протяжении всей работы программы-потока выполнять действие? 

К примеру следить за системным временем:
Если системное время совподает с заданным пользователем  то производить действие(Закрывать поток, выводить сообщение) .

Или к примеру на протяжении всей работы программы-потока следить за нагрузкой програмы на процессор.


Как?
PM MAIL   Вверх
bems
Дата 6.10.2010, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Для начала: что ты понимаешь под программой-потоком.
Ты в своем потоке создаешь новый процесс с его первичным потоком. Что такое программа-поток не понятно.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ЧеловекБорща
Дата 11.10.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Моя программа создаёт поток TThread, а тот в свою очередь запускает другую программу используя CreateProcess.
Поток tthread ждёт завершения программы(WaitForSingleObject(pi.hProcess,INFINIE), как на протяжении всего времени работы потока tthread(Программы) выполнять действие? К примеру следить за системным временем и в назначенноевремя закрыть программу? 
PM MAIL   Вверх
bems
Дата 11.10.2010, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



ждать не INIFINITE, а указать интервал


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ЧеловекБорща
Дата 12.10.2010, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



А если необходимо ждать завершения процесса(infinite) и ждать определённого момента? К примеру следить за временем и в определенный момент завершить процесс? Или на протяжении всего ождиния завершения выполнять какое-то действие...

Проще говоря "таймер в потоке"...
PM MAIL   Вверх
Riply
Дата 12.10.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(ЧеловекБорща @  12.10.2010,  16:20 Найти цитируемый пост)
А если необходимо ждать завершения процесса(infinite) и ждать определённого момента?


WaitForMultipleObjects(Ex)  ?

Добавлено через 1 минуту и 43 секунды
Цитата(ЧеловекБорща @  12.10.2010,  16:20 Найти цитируемый пост)
Или на протяжении всего ождиния завершения выполнять какое-то действие...


Например, ожидание поместить в нить.
PM MAIL   Вверх
bems
Дата 12.10.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



посчитай интервал с момента создания процесса, до момента когда нужно завершить и указывай его в WaitForSingleObject. Если она возвращает WAIT_TIMEOUT, то процесс нужно завершить


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ЧеловекБорща
Дата 12.10.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 5.6.2010

Репутация: нет
Всего: нет



Цитата(Riply @  12.10.2010,  17:25 Найти цитируемый пост)
Например, ожидание поместить в нить.


Можно пояснить, пожалауйста?  smile 

Это сообщение отредактировал(а) ЧеловекБорща - 12.10.2010, 19:33
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.