Скриншот на неактивном десктопе

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by golova, 11 Feb 2011.

  1. golova

    golova New Member

    Joined:
    11 Feb 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Возникла следующая проблема: при снятии скриншота с неактивного десктопа BitBlt возвращает Access denied. Пробовал обойти через PrintWindow и WM_PRINT, но при этом способе некорректно отрисовываются некоторые окна. Хотя тот же TeamViewer прекрасно шлет изображение с неактивного десктопа. Есть ли какие либо решения указанной проблемы?
     
  2. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Язык хоть укажи.
     
  3. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    arnis, язык не имеет значения, это же WinAPI.
    Только если запущен, как сервис.
     
  4. golova

    golova New Member

    Joined:
    11 Feb 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Нет, создавал дополнительный десктоп, переключался на него, запускал ТимВьювер 4.1.9105, управление не работает, а скрины шлет замечательно. Да, ОС - XP SP3, под другими не тестил... В Win7 - черный экран.
     
  5. golova

    golova New Member

    Joined:
    11 Feb 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    DWM API - это с Висты начиная, мне бы желательно под XP
     
  6. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    Code:
    var
      LHDC: HDC;
    
    LHDC := GetWindowDC(AHandle)
    ну а дальше GetPixel

    такой вариант подойдёт?