How do I enumerate open windows in a different session from a service?

1.5k Views Asked by At

I've seen this question, but I was hoping to avoid using CreateProcessAsUser. I can enumerate windows by calling EnumDesktopWindows, and I can get the desktops by calling EnumDesktops. Unfortunately, EnumDesktops requires a window station name, and WTSQuerySessionInformation with WTSWinStationName explicitly does not return the window station name.

So, I guess my question is: how do I get hold of the Window Station for a WTS session?

1

There are 1 best solutions below

3
On

You can use EnumWindowStations. For more background please see this blog post I wrote on Sessions, Window Stations, and Desktops.