title: How to access windows in another session
body: <p>I am developing an application for observing other applications (including applications of another user sessions)
  My application should collect information about CPU loading, memory usage and state of main window (if exists) of each application.
  Now I am trying to obtain window state of other application. If its window is in the same session (as my application) then everything is OK. </p>
  
  <p>And... I have a problem with obtaining info about windows in another session. I have read this old topic: <a href="https://stackoverflow.com/questions/308135/how-can-i-enumerate-the-open-windows-enumwindows-of-another-user-session">How can I enumerate the open windows (~EnumWindows) of another user session</a> and I understood that I should start new process within each session in order to enumerate windows in this session's desktop.</p>
  
  <p>But maybe in Windows Server 2012 appeared a new solution(s) for this issue (some new API functions or some interaction with dwm.exe in another session etc)?
  If some administrative permissions (and/or group policies) are needed, it is not a problem</p>
  
  <p>Thank you</p>
  
  <p>PS. Now I am using Process.MainWindowHandle property (that probably uses GetWindowThreadProcessId function).
  Also I tried use OpenWindowStation("\Sessions\1\Windows\WindowStations\WinSta0") that returns error 161 (invalid path)</p>