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

Вниз

Как считать определенную область экрана   Найти похожие ветки 

 
Дмитрий Стрункин   (2007-09-06 19:11) [0]

Здравствуйте! Подскажите пожалуйста, можно ли прочитать прямоугольную область с экрана, чтобы затем сравнить ее с заранее заданным изображением (в чужой программе выводится таймер обратного отсчета и нужно выполнить действия, когда он станет равным нулю)


 
Dib@zol ©   (2007-09-06 19:52) [1]

А не легче ле делать не через извините, *опу, а просто получить из окна этой проги текст с помощью GetWindowText???


 
sdubaruhnul   (2007-09-06 22:30) [2]

>А не легче ле делать не через извините, *опу, а просто получить из окна этой проги текст с помощью GetWindowText???

Не всё то GetWindowText, что надпись.


 
Дмитрий Стрункин   (2007-09-07 16:05) [3]

Увы, не проще. Нужен не заголовок, а область внутри окна


 
Dib@zol ©   (2007-09-07 16:17) [4]

> [3] Дмитрий Стрункин   (07.09.07 16:05)

Это понятно. Но я сильно сомневаюсь, что ваш текст выводится прямиком на DC окна, без какого-либо рода меток или панелей. Вот именно эту метку (или панель) и нужно отыскать. И вообще. Можете показать скриншот?


 
Rial ©   (2007-09-07 19:58) [5]

> [4] Dib@zol ©   (07.09.07 16:17)

С каких пор текст с метки можно получить таким образом?
И вообще, метки и панели - очень странный способ
рисовать картинки. %)

> [0] Дмитрий Стрункин   (06.09.07 19:11)

FindWindow поможет найти нужное окно.
Параметры для поиска окна можно узнать, воспользовавшись,
например, WinSight из набора Delphi.
Если имя окна меняется, то придется использовать
EnumWindows (кажется так называется, негде посмотреть точно)
и выбрать окно с нужным именем.
Теперь получаем DC окна и копируем нужную область с помощью
StretchBlt, BitBlt.

Каждый из шагов, естественно, должен быть выполнен самостоятельно.
Нужное направление, хотя и не единственное, я указал.

Со сравнением тоже проблемы, или дело было только в получении области ?


 
Dib@zol ©   (2007-09-07 20:19) [6]

> метки и панели - очень странный способ
> рисовать картинки. %)

А кто говорит о картинках? У него там ТЕКСТ! Текст вывелся на метку, и его надо перехватить. Не легче ли это сделать непосредственно?


 
Rial ©   (2007-09-07 20:28) [7]

> [6] Dib@zol ©   (07.09.07 20:19)


1. Ты уверен, что там текст?
2. Что ты привязался к этой метке?
3. Легче или нет... ну что ж, давай,
приведи пример тут кода, где осуществляется
перехват текста на метке. ;)


 
Dib@zol ©   (2007-09-07 20:33) [8]

Пажалте.

function GetWindowTextStr(W:HWND):string;
var
 lpTemp : PChar;
 i : byte;
begin
 i:=GetWindowTextLength(W)+1; GetMem(lpTemp, i);
 SendMessage(W, WM_GETTEXT, i, LongInt(lpTemp));
 result:=lpTemp;
end;

Осталось найти W. Тут надо прибегать к FindWindow(EX). Щас накатаю простенький примерчик.


 
Dib@zol ©   (2007-09-07 20:48) [9]

Вот он. Чтобы пример заработал, надо запустить прогу из папки Source, а потом - из папки Target. Исходники прилагаются.

http://webfile.ru/1520323


 
Dib@zol ©   (2007-09-07 20:52) [10]

> надо запустить прогу из папки Source, а потом - из папки Target

Уточнюсь: НЕ вырубая первую!!!


 
sdubaruhnul   (2007-09-07 21:17) [11]

>Дмитрий Стрункин

BitBlt может это сделать. Нужно только указать соответствующий DC, экрана или окна.



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

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

Наверх




Память: 0.47 MB
Время: 0.006 c
2-1227599161
Valerik
2008-11-25 10:46
2009.01.11
SQL запрос


2-1227775852
vegarulez
2008-11-27 11:50
2009.01.11
Вопрос про ZeosDBO. (Zquery.Fields[i].AsDatetime);


2-1227704235
ekto
2008-11-26 15:57
2009.01.11
не работают сплиттеры


15-1226924798
@!!ex
2008-11-17 15:26
2009.01.11
Что это за музыка?


2-1227990525
demon
2008-11-29 23:28
2009.01.11
RGB





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский