Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ScreenShot [D6, Win95/98, WinME, NT4, Win2k, WinXP]


DeadMeat ©   (2004-08-10 18:38:00) 

Здрассте всем!
Нет это не вопрос про то, как снять скриншот с рабочего стола. Нет это вопрос про то, как снять скриншот с какого-либо окна. Все бы ничего, но сложность заключается в том, что это окно может перекрываться другим окном и при этом его изображение затирается.
Так вот вопрос - как получить изображение окна, даже если оно перекрыто другим окном?


DeadMeat   (2004-09-01 17:50:00) [1]

Крута!
Но там аж целый драйвер с собой таскать надо...
Я все же оставил вариант с внедрением... Но правда скорость тратится на само внедрение, но можно все сразу внедрить во все GUI процессы и вызывать уже оттуда...

---
...Death Is Only The Begining...


Sapersky   (2004-09-01 12:34:00) [2]

В WinXP есть некая ф-я PrintWindow (наверное, в GDI+).
Нашёл ещё реализацию с написанием своего драйвера, должна работать в Win2000:
http://www.aqua-soft.org/index.php/developers
http://expire.free.fr/board/index.php?showtopic=109


DeadMeat   (2004-08-10 22:02:00) [3]


> [3] wicked ©   (10.08.04 20:22)

Спасиба... Почитал, перевел, проверил. Работает только со своим окном... Для чужого понадобилось внедрять *.DLL-ку.
Неужели нет других способов... без внедрения.
Просто для меня критична скорость снятия скриншота. Думал может можно способом типа BitBlt, но только своей процедуркой...
Никто так не делал?

---
...Death Is Only The Begining...


wicked   (2004-08-10 20:22:00) [4]

возможные альтернативы:
1. WM_PRINT....
2. WM_PAINT + WParam = HDC...

еще вариант - почитать на сайте Фень-Юаня (того самого) - http://www.fengyuan.com/article/wmprint.html


DeadMeat   (2004-08-10 19:30:00) [5]

Будет выглядеть немного странно, если через каждые, скажем 5 сек. список окон в системе будет переставляться...
У меня вот какая мысля родилась, мож подменить оконную процедуру, заставить отрисовать окно в мой битмап, а потом вернуть на место?
Что скажете? Просто проверять щас негде...


GuAV   (2004-08-10 19:21:00) [6]

А чем бы его не поставить поверх перед созданием скриншота. а после - вернуть на место...


Наверх

Титульная страница Поиск, карта сайта Написать письмо