|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.04.2014, 08:52 | #1 |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
В общем, ситуация такая.
К примеру, у меня на рабочем столе открыты: Браузер + Антивирус + Word И я хочу, что бы моя программа, делала скриншот не всего монитора, а только скриншот определённой программы. Я к примеру, хочу, что бы программа сделала скриншот Word. Но как это сделать? У меня есть одно предположение, как это сделать... 1) Выбираем имя нужной нам программы 2) Узнаём её координаты 3) Делаем скриншот монитора, согласно полученным координатам Если я рассуждаю верно, тогда что бы узнать координаты нужного мне окна, надо использовать функцию GetWindowsRect. Не сталкивался, щас буду читать Последний раз редактировалось Stilet; 29.04.2014 в 21:06. |
28.04.2014, 10:39 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
FindWindowEx+GetWindowRect+BitBlt = скриншот окна программы.
Только 1 хитрость есть: 1. Программа должна стать поверх всех окон. 2. Игровые D3D, OpenGL, DX таким способов вы снять не сможете. Надо идти через DIB. |
29.04.2014, 20:17 | #3 | |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
Цитата:
|
|
29.04.2014, 20:47 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Окно которое вы хотите заснять должно быть видимым. Показывайте код, как делаете скрин.
|
29.04.2014, 20:58 | #5 | |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
Цитата:
2) Вот код: Код:
|
|
29.04.2014, 21:05 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Затупил. Deleted
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 29.04.2014 в 21:54. |
29.04.2014, 21:39 | #7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
У вас StrechBlt. а я писал про BitBlt
|
30.04.2014, 00:07 | #8 |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
Просто на одном сайте, я прочёл следующее:
=================================== ========= Две функции, которые очень важны для работы с изображениями – это BitBlt и StretchBlt. Обе они служат для копирования растровых изображений, а при помощи функции StretchBlt можно также изменять размер изображения. =================================== ========= |
30.04.2014, 00:09 | #9 |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
|
30.04.2014, 00:18 | #10 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Так надо ещё и своей головой думать Вам надо взять часть изображения, а не взять и обрезать/сжать. Последнее и делает StretchBlt.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Блокирование получения WM_CONTEXTMENU сторонней программы. | Smogg | Win Api | 0 | 24.06.2013 17:15 |
Экспорт информации из сторонней программы | alkador | Общие вопросы Delphi | 5 | 26.05.2012 21:39 |
Данные из памяти сторонней программы | epileptick | Общие вопросы C/C++ | 8 | 01.01.2011 19:19 |
Определение завершения сторонней программы | Хамяг | Общие вопросы Delphi | 3 | 26.11.2008 18:12 |
Как определить момент запуска сторонней программы? | NioTo | Win Api | 2 | 17.12.2007 16:40 |