2010-07-09 2 views
3

Я создал планировщик. Сначала он был потоковым, но из-за утечек памяти и отдельных задач я переключился на подпроцессы.Delphi: Можно ли запускать короткие приложения из службы?

Услуга запускает подпроцессы на N минут или в определенное время. Я закончил со всем, но теперь я не уверен, что служба может запустить приложение или нет?

Я хочу использовать это как processfarm - как PostgreSQL в Windows. Но я хочу избегать того, что vivusscanners «едят» (блокируют) мои подпроцессы, и мне нужны все права для их запуска.

Могу ли я делать thins под любой ОС от WinXP до Win7?

Что мне нужно, чтобы подумать, что мне нужно рассчитать и т. Д.?

Спасибо за каждый Ваш ответ: д.д.

+1

Почему вы переписываете Планировщик задач Windows? – 2010-07-09 15:23:07

+0

Потому что я делаю много вещей в нем: проверьте основную базу данных, зарегистрируйте подпроцессы. Если Мастер-сервис умер или остановлен, но подпроцесс нет, я также зарегистрирую его. И подпроцессы работают только один раз. Если они живы, я не могу начать их снова. – durumdara

ответ

2

Да, услуги могут запускать другие программы.

+1

Просто обратите внимание, что если запущенная программа является визуальным приложением, ее необходимо запустить внутри интерактивного сеанса пользователя, чтобы быть видимым на экране. Для этого используйте CreateProcessAsUser() вместо CreateProcess(). –

+0

И как мне начать процесс, он начинается как дочерний процесс службы Master (Scheduler)? – durumdara

+0

Используйте ['CreateProcess'] (http://msdn.microsoft.com/en-us/library/ms682425.aspx). Или, как уже говорилось выше, ['CreateProcessAsUser'] (http://msdn.microsoft.com/en-us/library/ms682429.aspx). Я уверен, что на этот вопрос уже был дан ответ на Stack Overflow. –