Я знаю (и это работает), что в C# это свойство сообщает мне, является ли текущий сеанс сеансом RDP:
System.Windows.Forms.SystemInformation.TerminalServerSession
Теперь у меня есть служба, которая получает события входа в систему/выхода из системы и блокировки/разблокировки, и мне нужен способ сообщить этой службе, является ли запущенный сеанс rdp или локальным.
Проблема: служба работает от имени пользователя SYSTEM, а указанное выше свойство всегда возвращает false (я думаю, потому что SYSTEM всегда считается локальным подключенным пользователем)
Я попытался найти в реестре подраздел Volatile Environment, чтобы проверить, существует ли подраздел, идентифицирующий имя сеанса RDP: это работает в обработчике блокировки/разблокировки, но в обработчике входа подраздел еще не существует (подключ создается после завершения входа в систему).
Любая идея о том, как обойти эту проблему?
В то время как ожидание создания ключа в течение ограниченного периода времени работает, я хотел бы менее «запутанный» способ сделать это.