Привет! Есть два уже залогининых юзера(у первого session - 0(возвращается с помощью WTSGetActiveConsoleSessionId), у второго - 1), а также сервис запущеный в 0-сессии который делает скриншоты экрана, для этого написал код: hwinsta = OpenWindowStation("winsta0", FALSE, GENERIC_ALL); SetProcessWindowStation(hwinsta); hddesk = OpenDesktop("Winlogon", 0, FALSE, GENERIC_ALL); SetThreadDesktop(hddesk); Захват экрана происходит нормально(пользуюсь станд. bitblt...) КОГДА первый юзер переключается или логоффится в winlogon, НО когда второй юзер переключается или логоффится в винлогон то сервис захватывает черный экран! Так как winlogon запускается для каждого юзера отдельно то в момент логоффа или переключения со второго пользователя winlogon уже не в 0-сессии а в 1. В мсдн'e почитал что проблема в том что сервис в 0-сессии не имеет доступ к десктопу другово юзера и что для этого сервис должен иметь права и больше ниче по этому не написано! И возникает такой вопрос какие имено права надо поставить чтоб сервис имел доступ к десктопу winlogon'a когда второй юзер отключился или переключился? Спасибо.
To get or set the security descriptor of a window station object, call the GetSecurityInfo and SetSecurityInfo functions. Не пробовал?