2009-12-11 2 views
0

Я видел this question, но я надеялся избежать использования CreateProcessAsUser. Я могу перечислять окна, вызывая EnumDesktopWindows, и я могу получить рабочие столы, позвонив EnumDesktops. К сожалению, EnumDesktops требует названия оконной станции, а WTSQuerySessionInformation с WTSWinStationNameexplicitly does not возвращает имя станции.Как перечислить открытые окна в другом сеансе из службы?

Итак, я догадываюсь, что мой вопрос: как мне достать станцию ​​Window для сеанса WTS?

ответ

1

Вы можете использовать EnumWindowStations. Для получения дополнительной информации см. Это сообщение в блоге, которое я написал на Sessions, Window Stations, and Desktops.

+0

Прошло некоторое время, но я, кажется, помню, что это всегда возвращает «WinSta0». Как узнать окна станций * для определенного сеанса *? Или: как передать сеанс * в EnumDesktops? –

+0

Вы можете запустить процесс в течение определенного сеанса, а затем использовать этот API. –

+0

«... но я надеялся избежать использования CreateProcessAsUser ...». К сожалению, именно это я и сделал. –

Смежные вопросы