Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2011, 22:02   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Восклицание полный контроль над процессом

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

Собираюсь писать программу, которая будет запускать другие программы с разными параметрами и т.д. и т.п. Ну это просто.
Вопрос в том как следить за запущенной программой? Не упускать её из вида и манипулировать её как угодно и получать извещения и том что программа закрылась или о том что она запустилась. В ощем в этом духе. Что-то вроде "как привязать её к себе?".

У меня вариант, запускать поток TThread и передавать ему информацию.
Поток исходя из этой информации запускает программу и ждёт её завершения.

Может быть есть вариант по лучше? Подскажите кто... пжалуйста.
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2011, 00:06   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

смотря что подразумевается под контролем.
если следить за завершением(старт то вы уж точно знаете) то просто WaitForSingleObject на хендл процесса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.08.2011, 00:36   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В принципе у меня на потоке все так и реализованно. Вся проблема в том что не могу реализовать функции:
Завершение/запуск в указанное время и дату.

т.к. после waitForSingleObject ничего не выполняется...

Рассматриваю вариант запускать второй поток зависящий от первого и там делать отсчёты. Но разумно ли привязывать к процесчсу 100500 потоков?

Может можно через dll? Если можно, то как её грузить в процесс и как управлять процессом через dll из внешней программы?
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2011, 02:26   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

делаете этапное ожидание(например по секунде) и проверяете между ними на предмет условий выхода с цикла(процесс помер/время вышло)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.08.2011, 02:33   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Благодарен=)
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц