desktop && winlogon

Тема в разделе "WASM.WIN32", создана пользователем valix7, 25 апр 2008.

  1. valix7

    valix7 New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    143
    Привет!
    Есть два уже залогининых юзера(у первого 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 когда второй юзер отключился или переключился? Спасибо.
     
  2. valix7

    valix7 New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    143
    Если быть покороче то вопрос сводится к тому как получить скриншот winlogon'a когда сессия не 0!
     
  3. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    To get or set the security descriptor of a window station object, call the GetSecurityInfo and SetSecurityInfo functions.

    Не пробовал?
     
  4. valix7

    valix7 New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    143
    Не пробывал... щас гляну