Показать сообщение отдельно
  #6  
Старый 04.01.2009, 12:35
cool_rus_killer cool_rus_killer вне форума
Прохожий
 
Регистрация: 04.01.2009
Сообщения: 1
Репутация: 10
По умолчанию

А кто знает, как сделать скриншот неактивного рабочего стола?

Пытался сделать следующим образом:
1. Создаю поток.
2. В этом потоке открываю рабочий стол (dsk = OpenDesktop(..))
3. Назначаю потоку этот рабочий стол (SetThreadDesktop(dsk))
4. Далее, в этом потоке действую как было описано выше (..BitBlt...)

Результат:
Если я открываю активный рабочий стол, то скриншот получается.
Если же открываю другой рабочий стол, то получается сплошная чернота. При этом BitBlt возвращает false и GetLastError = 6 (Неверный дескриптор).

Вот. Кто-нибудь знает, как можно это исправить и возможно ли вообще у неактивного рабочего стола снять скриншот?
Ответить с цитированием