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

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

Проблемы с PrintScreen [D7, Win2k, WinXP]


al_mt ©   (2005-06-03 11:38:00) 

Здравствуйте!
Проблема. Делаю снимок экрана посредством GetDC(0)  - если на экране есть окна с прозрачностью, то такие окна на снимке НЕВИДИМЫ! :(
Когда эмулирую нажатие на принтскрин - всё работает, но у меня в проге на кнопке PrintScreen висит хук с собственным обработчиком - результат, ничего не работает.. ;((((

Вопрос: как бороться?? Может можно обратиться напрямую к видеопамяти? Или у WinAPI есть функция выполняющая человеческий принтскрин??


alpet   (2005-06-03 20:48:00) [1]

Не знаю как GDIplus, но возможно поможет UpdateLayeredWindow по отношению к видимым полупрозрачным окнам.


Kerk   (2005-06-03 19:54:00) [2]

В сторону GDI+ копай


alpet   (2005-06-03 19:43:00) [3]

>как бороться??
Методом поиска решения
>Может можно обратиться напрямую к видеопамяти?
Можно, либо с помощью видеодрайвера, либо с помощью DirectX.
> Или у WinAPI есть функция выполняющая человеческий принтскрин??
Вполне вероятно, но я о такой не знаю. Код приведеный в MSDN во всяком случае ей не соответствует (используется функция CreateDC, но результат тот же).

У тебя есть два варианта:
1. Передавать все-таки VK_SNAPSHOT, не смотря на свой хук системе, и через некоторое время копировать изображение из буфера.
2. Самостоятельно пытаться выполнить отрисовку окон с применением прозрачности, что довольно сложная задача.


Наверх

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