![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| SaikstiN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 17.1.2009 Репутация: нет Всего: нет |
Здравствуйте!
Подскажите, пожалуйста, как отскриншотить скрытый десктоп? Например я создаю несколько их с помощью CreateDesktop, переключаю на default, и пытаюсь сделать скриншот скрытого рабочего стола... снимаю через BitBlt, wnd десктопа получаю с помощью GetDesktopWindow() когда прога находится в созданном рабочем столе... рисует оно мне то чёрный екран, то вообще default десктоп, хотя хендлы разные, не нулевые, т.е. валидные... также использовал PrintWindow, но еффекта никакого, черный екран... нашел где-то на форуме предложение сабклассировать окна при рисовании на WM_PAINT, но подумал что сабклассинг десктопа будет чем-то...эээ....ужасным + если десктоп скрыт, то WM_PAINT ведь не будет посылаться, верно?) ещё находил оговорки о создании сервиса, который сможет как-то это делать, но дальше оговорок дела не пошло.. потому и спрашиваю, возможно ли снять скриншот с скрытого рабочего стола?) UPD: написал утилитку спец для теста, с скриншоттингом текущего десктопа через каждые 5 секунд....так вот, пока я на том десктопе, где и эта программка работает, скриншоты нормальные и красивые, как только переключаюсь, красятся в черное... и глядя на эти бмп-шные черные картинки, делаю вывод что получить скриншот когда десктоп скрыт невозможно... это так??) не хочется углубляться в альтернативные способы вроде векторной отрисовки каждого открытого там окна))) |
|||
|
||||
| RapMan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
попробуй может создать поток и перевести его на другой десктоп с помощью функции SetThreadDesktop и тогда делать скриншот клик
--------------------
здесь хреновые модераторы... |
|||
|
||||
| SaikstiN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 17.1.2009 Репутация: нет Всего: нет |
мммм, а смысл такого?
программа просто запустится на левом десктопе (пусть будет test), и будет скриншотить, находясь там? ну я почти так и делаю, я запускаю там (на test) отдельную прогу для скриншоттинга, и она через пару секунд, когда я уже переключился обратно на default делает снимки....но делает черные снимки...если кому интересно, для теста, могу кинуть эту прогу.... наверное, когда десктоп становится не активен, скрытым, то DC как-то очищается.. пока вижу только способ, как перечисление всех видимых окон и их отрисовка... .... а если создавать WinStation, там такая же политика?) Это сообщение отредактировал(а) SaikstiN - 29.10.2009, 10:03 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |