Нет, это невозможно. Приложения WPF являются приложениями пользовательского режима, поэтому они должны запускаться в контексте вошедшего в систему пользователя. Поскольку Windows является многопользовательской операционной системой, она может быть запущена, но пользователи не могут войти в систему. В этих ситуациях нет места для запуска приложения.
Службы Windows - единственное, что может сделать это, и именно потому, что они не работают в определенном пользовательском контексте. Фактически, эта же функция часто вызывает разочарование у разработчиков, которые хотят создать службу Windows, которая взаимодействует с пользователем. Это невозможно (по крайней мере, не в Windows Vista, которая исправила все дыры в безопасности , присутствовавшие в предыдущих версиях).
Альтернативные решения:
Добавьте приложение в папку «Автозагрузка» пользователя по умолчанию, что будет запускать его каждый раз при входе пользователя в систему на компьютере.
В этом сценарии не будет работать только тогда, когда в систему не войдут пользователи, и в этом случае сложно представить, что ваше приложение / служба действительно кому-то приносит пользу.
Сконфигурируйте каждую машину для автоматического входа в систему под конкретным пользователем при запуске Windows. Комбинируя это с вышесказанным, вы обойдете тот факт, что компьютер может остаться без входа в систему пользователя даже сразу после сбоя / перезагрузки.
Хотя шаблон наличия отдельного приложения пользовательского режима (WPF, WinForms или чего-либо еще), который может показывать элемент управления пользовательского интерфейса, работающий в фоновом режиме, является довольно распространенным. Я не уверен, что вы думаете, что не так с этой настройкой. Там нет ничего плохого в опросе службы, когда это необходимо для получения информации. Услуги по определению не требуют вмешательства пользователя. Разделение части, требующей вмешательства пользователя, в отдельное приложение - не только обычная практика, но и необходимая.