Я кодирую службу Windows, и в одном месте мне нужно знать, существует ли активный интерактивный сеанс.
Я пытался использовать OnSessionChange () и сохранить в переменной последний SessionChangeReason.Когда я дохожу до упомянутой точки, я сравниваю, если она равна SessionChangeReason.SessionLogOn.Это работает с неудобством, что служба имеет отложенный запуск, поэтому, если пользователь входит в систему до запуска службы, эта информация теряется.
Я также видел свойство System.Environment.Interactive, но, как я понимаю, этоотносится к процессу текущего сервиса, который не является интерактивным, поэтому он не даст мне нужную информацию (хотя я могу неправильно это понять).
Есть ли способ получить эту информацию 'по запросу'без необходимости вести реестр SessionChangeReason?
Редактировать: Может быть, я не совсем понял об этом.Помимо того, что я знаю, что есть интерактивный сеанс, мне также нужно знать, что он не заблокирован.