Возможно, вы сможете использовать WMI во втором приложении, которое вы создаете, как показано здесь , чтобы отслеживать процесс, который вы ищете, а затем иметь ваше второе «приложение монитора», которое всегда работает ( не обязательно в качестве службы) запустите ваше приложение, чтобы обработать выходные данные приложения, которое вы хотите иметь, чтобы запустить ваше приложение.
Другие вещи, которые мы сделали, - запустили наше приложение из-под входа пользователя, добавив его в папку запуска или вызвав его из запланированного задания для поиска данных для обработки. Не уверен, что работает для вас, но, возможно, некоторые опции, которые вы можете использовать.
EDIT:
@ManX IMO метод мониторинга работает очень хорошо, и я не вижу особых проблем в обработке тысяч отчетов в день в моих приложениях с использованием этого метода. Я просто ищу новые «выходные» данные, отчеты в вашем случае в определенных местах и обрабатываю их соответственно. Как правило, наши приложения работают в режиме без окон и выводятся на передний план только тогда, когда пользователю необходимо взаимодействовать. В вашем случае это будет когда новый отчет будет создан. В .NET Framework есть много возможностей, которые позволят вам написать гибкое и легкое приложение для мониторинга.
Найдите один из подходящих вам таймеров и периодически проверяйте наличие новых отчетов. Это будет почти немедленная реакция на создание отчета и должна быть незаметной для пользователя.
РЕДАКТИРОВАТЬ # 2.
Посмотрите на создание Постоянного потребителя событий WMI ... Тогда вы можете просто использовать Process.Start
, чтобы запустить ваше приложение, как рекомендовали другие, когда вы обнаружите интересующее вас событие.