Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

Захват картинки с окна перекрытого другим   Найти похожие ветки 

 
aleksei_c ©   (2006-08-06 18:58) [0]

Привет, ALL!
Как получить картинку с окна чужого приложения (имеем Handle), когда это окно частично или полностью перекрыто другим. Славная функция bitblt честно отдает то, что я и так вижу - окно перекрытое фрагментами других окон, а очень хочется получить его "чистым".
Нежелательно делать SetForegroundWindow(Handle), так как идея не в этом.
Есть рабочие способы?


 
homm ©   (2006-08-06 19:28) [1]

рекурсивно посылать последовательно WM_ERASEBKGND и WM_PAINT от родителя к деткам, передавая в качестве WParam свой DC и настраивая для каждого окна смещение в этом DC с помошью SetWindowOrgEx.

ЗЫ: Не расчитывай что все приложения с радостью отдадут тебе изображения своих окон на не дисплейнцю канву ;)


 
aleksei_c ©   (2006-08-06 21:12) [2]

Спасибо, подойдет.
Осталось разобраться с SetWindowOrgEx :)


 
homm ©   (2006-08-06 23:42) [3]

Если нужен хороший пример реализации ПОДОБНОГО то посмотрите реализацию WndProcTransparent в модуле KOL.PAS


 
Анонимщики ©   (2006-08-07 10:43) [4]

WM_PRINT


 
aleksei_c ©   (2006-08-07 11:18) [5]

WM_PRINT как-то не очень, далеко не все элементы видны, перепробывал различные комбинации параметров :\


 
aleksei_c ©   (2006-08-07 15:36) [6]


> рекурсивно посылать последовательно WM_ERASEBKGND и WM_PAINT
> от родителя к деткам, передавая в качестве WParam свой DC
> и настраивая для каждого окна смещение в этом DC с помошью
> SetWindowOrgEx.
>
> ЗЫ: Не расчитывай что все приложения с радостью отдадут
> тебе изображения своих окон на не дисплейнцю канву ;)


использую EnumChildWindows, как правило сдирается все, кроме полей ввода текста (в аське например), ошибка у меня или действительно - часть окон не желает рисовать на мою канву?


 
homm ©   (2006-08-07 15:52) [7]

> использую EnumChildWindows, как правило сдирается все, кроме
> полей ввода текста (в аське например), ошибка у меня или
> действительно - часть окон не желает рисовать на мою канву?

Большие проблемы с RichEdit. скорее всего для окон ввода в аське используется имеено он.


 
aleksei_c ©   (2006-08-07 16:27) [8]

а есть способ перехватить окно сразу после его стандарного сообщения WM_PAINT, тогда теоретически можно и содрать его HDC? хуки перехватят до, если я правильно понимаю их смысл, или не обязательно?


 
Анонимщики ©   (2006-08-08 18:19) [9]

Еще раз:
http://www.fengyuan.com/article/wmprint.html
И расскажи о результате


 
aleksei_c ©   (2006-09-04 16:53) [10]


> Анонимщики ©   (08.08.06 18:19) [9]
> Еще раз:
> http://www.fengyuan.com/article/wmprint.html
> И расскажи о результате

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



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.053 c
15-1176389994
GeLLeR
2007-04-12 18:59
2007.05.13
Как перевести код


1-1173883185
Леонид
2007-03-14 17:39
2007.05.13
Управление другой программой


2-1177055749
Steep
2007-04-20 11:55
2007.05.13
ошибка присоздании


4-1166284681
Max_2006
2006-12-16 18:58
2007.05.13
Добавить ресурс в exe


2-1176872724
Konus
2007-04-18 09:05
2007.05.13
работа с copy(s,1,2), Delete(s,1,2) и Pos( ; ,s)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский