У меня есть несколько проблем.
< 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;
}
Любые указатели приветствуются!
Подробнее здесь: https://stackoverflow.com/questions/793 ... -desktop-i