Как запустить приложение WPF перед входом в Windows? - PullRequest
0 голосов
/ 15 июля 2011

Я хотел бы запустить приложение WPF перед входом в Windows.Он не должен выполнять какой-либо из существующих интерфейсов, просто вызывает событие ApplicationStartup - он вызывает нужные мне функции.

В настоящее время я использую службу Windows в сочетании с приложением, поэтому служба запускается перед входом в систему.

Недостатком является то, что мое приложение не знает, что делает служба, не опрашивая ее.

И это требование, поскольку машины могут аварийно завершать работу и перезагружаться, но Windows все равно должна запускать приложениев любом случае после загрузки.

Есть ли способ?

1 Ответ

7 голосов
/ 15 июля 2011

Нет, это невозможно. Приложения WPF являются приложениями пользовательского режима, поэтому они должны запускаться в контексте вошедшего в систему пользователя. Поскольку Windows является многопользовательской операционной системой, она может быть запущена, но пользователи не могут войти в систему. В этих ситуациях нет места для запуска приложения.

Службы Windows - единственное, что может сделать это, и именно потому, что они не работают в определенном пользовательском контексте. Фактически, эта же функция часто вызывает разочарование у разработчиков, которые хотят создать службу Windows, которая взаимодействует с пользователем. Это невозможно (по крайней мере, не в Windows Vista, которая исправила все дыры в безопасности , присутствовавшие в предыдущих версиях).

Альтернативные решения:

  • Добавьте приложение в папку «Автозагрузка» пользователя по умолчанию, что будет запускать его каждый раз при входе пользователя в систему на компьютере.

    В этом сценарии не будет работать только тогда, когда в систему не войдут пользователи, и в этом случае сложно представить, что ваше приложение / служба действительно кому-то приносит пользу.

  • Сконфигурируйте каждую машину для автоматического входа в систему под конкретным пользователем при запуске Windows. Комбинируя это с вышесказанным, вы обойдете тот факт, что компьютер может остаться без входа в систему пользователя даже сразу после сбоя / перезагрузки.

Хотя шаблон наличия отдельного приложения пользовательского режима (WPF, WinForms или чего-либо еще), который может показывать элемент управления пользовательского интерфейса, работающий в фоновом режиме, является довольно распространенным. Я не уверен, что вы думаете, что не так с этой настройкой. Там нет ничего плохого в опросе службы, когда это необходимо для получения информации. Услуги по определению не требуют вмешательства пользователя. Разделение части, требующей вмешательства пользователя, в отдельное приложение - не только обычная практика, но и необходимая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...