Где находится значок панели задач для пользователя системы?

Я создал приложение, единственным интерфейсом которого является значок на панели задач Windows. Когда приложение запускается напрямую (например, дважды щелкните его в проводнике Windows), оно правильно показывает значок панели задач. Мне нужно убедиться, что это приложение всегда работает. Для этого я создал службу Windows в C#, которая каждые 10 секунд проверяет, работает ли приложение, а если нет, оно перезапускает его, вызывая

System.Diagnostics.Process.Start("MyApp.exe");

Процесс запущен, как я вижу из диспетчера задач. Тем не менее, я не могу найти значок панели задач. Одна вещь, которую я заметил, заключается в том, что он запускается под именем системного пользователя при запуске из Window Service.

Как сделать значок панели задач видимым при запуске из Windows Service?

1 ответ

Службы не имеют доступа к тому же рабочему столу, что и пользователь в Vista или Win7. Приложения, запущенные другими процессами по умолчанию, имеют те же права, что и приложение, которое их запустило (они запускаются под одной учетной записью). Вам необходимо либо запустить службу под учетной записью пользователя, либо использовать ImpersonateLoggedOnUser (не уверен, что представляет собой версия.NET этой функции. Надеюсь, вы сможете найти ее с этой отправной точкой).

Другие вопросы по тегам