Получить идентификатор сеанса для текущего интерактивного пользователя из сеанса 0 на общем рабочем столе (т. е. сеанса C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получить идентификатор сеанса для текущего интерактивного пользователя из сеанса 0 на общем рабочем столе (т. е. сеанса

Сообщение Anonymous »

Я пытаюсь получить идентификатор сеанса текущего интерактивного пользователя. Но он должен работать в сценарии общего рабочего стола, например Citrix, при вызове из скрытого сеанса 0.
У меня есть несколько проблем.
< ol>
[*]В сценарии общего рабочего стола может быть несколько «активных» сеансов (например, если вы запустите «сеанс запроса», вы увидите несколько активных сеансов). Поэтому перечисление сеансов (WTSEnumerateSessions) для поиска «активного» сеанса, вероятно, не будет работать, если вы не знаете, кто текущий активный пользователь для текущего сеанса! И я не знаю, как это найти.

[*]Он также должен иметь возможность запускаться из сеанса 0 (т. е. быть скрытым). Например, если активный пользователь работает в сеансе 2, а я запускаю свой код из скрытого сеанса 0, мне нужно вернуть сеанс 2.


Я могу получить идентификатор сеанса при запуске из-за пределов сеанса 0. Это код, который я использовал:

Код: Выделить всё

public static uint GetCurrentSessionId()
{
uint sessionId;
uint processId = (uint)System.Diagnostics.Process.GetCurrentProcess().Id;
if (!ProcessIdToSessionId(processId, out sessionId))
{
throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error());
}
return sessionId;
}
Но если я использую это в скрытом режиме, System.Diagnostics.Process.GetCurrentProcess().Id получает идентификатор текущего процесса, работающего в сеансе 0, поэтому это не будет работать даже если я потом вызову WTSQueryUserToken.
Любые указатели приветствуются!

Подробнее здесь: https://stackoverflow.com/questions/793 ... -desktop-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»