Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
WinAPI & Visual C++
(Модератор:
Вад
) > Тема:
Работа с окном чужого процесса
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Работа с окном чужого процесса (Прочитано 9352 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Dimka
Деятель
Команда клуба
Offline
Пол:
Работа с окном чужого процесса
«
:
09-12-2008 20:41 »
Контекст обсуждения: WinAPI.
Вопрос первый. Можно ли как-нибудь прочитать содержимое окна чужого приложения как графическую картинку? Крайне желательно без эмуляции Alt+PrtSc и буфера обмена.
Вопрос второй. Если ответ на первый вопрос положительный, то как бы наладить процесс такого чтения в момент, когда чужому окну достаётся событие WM_PAINT, и оно завершает его обработку? С завершением обработки можно упростить, организовав чтение спустя, допустим, 100 мс после события - время, за которое наблюдаемое окно гарантированно успеет себя перерисовать. Так что остаётся ловля события, адресованного чужому окну.
Записан
Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба
Offline
Пол:
Re: Работа с окном чужого процесса
«
Ответ #1 :
09-12-2008 20:53 »
Как я вижу в одной из соседних тем, есть функция GetPixel(HDC, int, int). Правда, читать она умеет только видимую часть окна.
Записан
Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: Работа с окном чужого процесса
«
Ответ #2 :
09-12-2008 21:08 »
Цитата: dimka от 09-12-2008 20:53
Как я вижу в одной из соседних тем, есть функция GetPixel(HDC, int, int). Правда, читать она умеет только видимую часть окна.
попробуй
BOOL BringWindowToTop( HWND hWnd); (выбросит окно поверх всех окон, кроме тех, что SYSTEMMODAL , но можно временно это свойство приделать - WS_EX_TOPMOST )
затем
BOOL UpdateWindow(HWND hWnd ); - перерисовать (отсылает в оконную процедуру WM_PAINT)
потом достать картинку
«
Последнее редактирование: 09-12-2008 21:12 от Алексей1153++
»
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
zubr
Гость
Re: Работа с окном чужого процесса
«
Ответ #3 :
09-12-2008 22:12 »
1. Ставим глобальный хук на WM_PAINT
2. В процедуре обработки хука проверяем в каком процессе происходит действо. Если в интересующем нас, вызываем BitBlt с контекста интересующего нас окна.
Записан
Джон
просто
Администратор
Offline
Пол:
Re: Работа с окном чужого процесса
«
Ответ #4 :
09-12-2008 23:40 »
dimka
, я давно давно уже где-то выкладывал у нас на форуме одну прогу с исходниками, на основе которой позже расплодилось великое множество програм для создания видео записи с участка или всего экрана. Они используются для видео уроков и тп. Помню только что начинается на cam. Я так думаю это как раз, то что тебе надо. Поищи, если не найдёшь, то буду поднимать архивы. Инет ресурс уже давно продали с потрохами. Осталась только память.
Как альтернатива - глянь исходники Мозилки, у неё есть такая фича - показывать затабенную страничку как картинку.
Записан
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
WinAPI & Visual C++
(Модератор:
Вад
) > Тема:
Работа с окном чужого процесса
Загружается...