Пожалуйста, дайте мне знать, как мне запустить приложение под текущим вошедшим в систему пользователем из службы.
Для справки, у меня есть служба Windows VB.NET, единственная функциональность которой заключается в запуске приложения Winform.в указанное время.Кроме того, он также устанавливает системный таймер пробуждения, чтобы система могла быть активирована в указанное время, если она переходит в режим ожидания / сна, чтобы запустить приложение.Этот сервис должен обслуживать рабочие столы XP / Vista / Win7 в нашей сети.Этот сервис не будет работать на серверах и ноутбуках.
Приложение Winform показывает пользовательский интерфейс для предоставления некоторых входных данных.Если пользователь не вводит данные в течение 15 минут, он по умолчанию принимает значение и затем переходит в значок на панели задач.Пользователь может щелкнуть значок и изменить значения позже (в течение определенного периода времени, и это тоже только дважды).
Нет абсолютно никакого взаимодействия между службой и приложением winform, кроме службы, запускающейприложение.Он также отслеживает, было ли приложение убито пользователем / разбилось.Если он был убит / разбился, то новый экземпляр запускается через 30 минут после предыдущего запуска.
Если пользователь не вошел в систему, я также хочу, чтобы приложение запускалось в указанное время.Как я уже говорил, у приложения есть таймер по умолчанию.Так что, если какой-то пользователь только что вышел из системы, то приложение winform установит значения по умолчанию.
Теперь перейдем к вопросу, почему я застрял с этим дизайном - я не могу использовать TaskScheduler, потому что он отключен на всехмашины и служба безопасности не желают его менять.У TaskScheduler была возможность вывести машину из спящего режима и другие вещи.Так что в основном я создал службу, которая действует как планировщик задач.
В настоящее время, когда я запускаю app.exe через process.start () внутри службы, он запускается под учетной записью SYSTEM, так как служба также запущена.в локальной системе.Так что в основном я не получаю никакого интерфейса.Есть ли способ запустить его под текущим вошедшим пользователем?Я не беспокоюсь о многопользовательском входе в систему, поскольку мы не будем запускать его на серверах, а переключение пользователей не включено на наших рабочих столах.Даже если кто-то сделал удаленный вход в систему через mstsc, мне также нужно запустить приложение и показать пользовательский интерфейс.
Пожалуйста, дайте мне знать, как запустить приложение под текущим зарегистрированным пользователем изсервис.
Спасибо, аскиды