powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Можно узнать о том что программа запущена в терминальной сессии
5 сообщений из 5, страница 1 из 1
Можно узнать о том что программа запущена в терминальной сессии
    #33271574
Soldat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно отследить среду где запущена программа, под локальным подлючением или под терминальной сессией.

Если можно то как или в какую сторону рыть.

Спасибо.
...
Рейтинг: 0 / 0
Можно узнать о том что программа запущена в терминальной сессии
    #33271897
Фотография Kull Damned
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыть в сторону объектов ядра Windows. Вроде должно получиться.
Рихтер Дж.
"Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows" - третья глава... Немного процитирую оттуда:
Пространства имен Terminal Server

Terminal Server несколько меняет описанный выше сценарий На машине с Terminal Server существует множество пространств имен для объектов ядра. Объекты, которые должны быть доступны всем клиентам, используют одно глобальное пространство имен. (Такие объекты, как правило, связаны с сервисами, предоставляемыми клиентским программам.) В каждом клиентском сеансе формируется свое пространство имен, чтобы исключить конфликты между несколькими сеансами, в которых запускается одно и то же приложение Ни из какого сеанса нельзя получить доступ к объектам другого сеанса, даже если у их объектов идентичные имена.

Именованные объекты ядра, относящиеся к какому-либо сервису, всегда находятся в глобальном пространстве имен, а аналогичный объект, связанный с приложением, Terminal Server по умолчанию помещает в пространство имен киентского сеанca. Однако и его можно перевести в глобальное пространство имен, поставив перед именем объекта префикс "Global\", как в примере ниже.
Код: plaintext
HANDLE h = CreateEvenL(NULL, FALSE, FALSE, "Global\\MyName");
Если Вы хотите явно указать, что объект ядра должен находиться в пространстве имен клиентского сеанса, используйте префикс "Local\":
Код: plaintext
HANDLE h = CreateEvent(NULL, FALSE, FALSE, "Local\\MyName");
Microsoft рассматривает префиксы Global и Local как зарезервированные ключевые слова, которые не должны встречаться в самих именах объектов. К числу таких слов Microsoft относит и Session, хотя на сегодняшний день оно не связано ни с какой функциональностью. Также обратите внимание на две вещи, все эти ключевые слова чувствительны к регистру букв и игнорируются, если компьютер работает без Terminal Server
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Можно узнать о том что программа запущена в терминальной сессии
    #33272139
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может смотреть в сторону GetProcessWindowStation и иже с ним

И вообще в Terminal Service API Reference как раз _про это_
...
Рейтинг: 0 / 0
Можно узнать о том что программа запущена в терминальной сессии
    #33272811
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наберите команду SET
если среди переменных найдёте
SESSIONNAME=console - локальный запуск
если типа
SESSIONNAME=RDP-tcp#33 - терминал

ну как узнать из приложения значение переменной окружения - зависит от языка :-)
...
Рейтинг: 0 / 0
Можно узнать о том что программа запущена в терминальной сессии
    #33272818
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё clientname

IMHO, Mon$te®
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Можно узнать о том что программа запущена в терминальной сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]