Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> МногоDesktopие и скриншоты, как снять скриншот у скрытого рабочего с 
:(
    Опции темы
SaikstiN
  Дата 28.10.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2009

Репутация: нет
Всего: нет



Здравствуйте!  smile 

Подскажите, пожалуйста, как отскриншотить скрытый десктоп?
Например я создаю несколько их с помощью CreateDesktop, переключаю на default, и пытаюсь сделать скриншот скрытого рабочего стола...
снимаю через BitBlt, wnd десктопа получаю с помощью GetDesktopWindow() когда прога находится в созданном рабочем столе...

рисует оно мне то чёрный екран, то вообще default десктоп, хотя хендлы разные, не нулевые, т.е. валидные...

также использовал PrintWindow, но еффекта никакого, черный екран...

нашел где-то на форуме предложение сабклассировать окна при рисовании на WM_PAINT, но подумал что сабклассинг десктопа будет чем-то...эээ....ужасным  smile 
+ если десктоп скрыт, то WM_PAINT ведь не будет посылаться, верно?)

ещё находил оговорки о создании сервиса, который сможет как-то это делать, но дальше оговорок дела не пошло..

потому и спрашиваю, возможно ли снять скриншот с скрытого рабочего стола?)

UPD: написал утилитку спец для теста, с скриншоттингом текущего десктопа через каждые 5 секунд....так вот, пока я на том десктопе, где и эта программка работает, скриншоты нормальные и красивые, как только переключаюсь, красятся в черное...

и глядя на эти бмп-шные черные картинки, делаю вывод что получить скриншот когда десктоп скрыт невозможно... это так??)
не хочется углубляться в альтернативные способы вроде векторной отрисовки каждого открытого там окна)))
PM MAIL   Вверх
RapMan
Дата 28.10.2009, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.6.2008

Репутация: нет
Всего: нет



попробуй может создать поток и перевести его на другой десктоп с помощью функции SetThreadDesktop и тогда делать скриншот клик
--------------------
здесь хреновые модераторы...
PM MAIL   Вверх
SaikstiN
Дата 29.10.2009, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.1.2009

Репутация: нет
Всего: нет



мммм, а смысл такого?

программа просто запустится на левом десктопе (пусть будет test), и будет скриншотить, находясь там?

ну я почти так и делаю, я запускаю там (на test) отдельную прогу для скриншоттинга, и она через пару секунд, когда я уже переключился обратно на default делает снимки....но делает черные снимки...если кому интересно, для теста, могу кинуть эту прогу....

наверное, когда десктоп становится не активен, скрытым, то DC как-то очищается..

пока вижу только способ, как перечисление всех видимых окон и их отрисовка...

....
а если создавать WinStation, там такая же политика?)

Это сообщение отредактировал(а) SaikstiN - 29.10.2009, 10:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.