Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2010, 21:10   #1
GvR
Пользователь
 
Аватар для GvR
 
Регистрация: 03.11.2009
Сообщений: 29
Вопрос Ищем цвет

Помогите с такой задачкой:
На мониторе время от времени (скажем что 1-2 секунды) появляется объект скажем # FFFFFF цвета, в тот момент когда он появляется на него должен приводиться курсор мыши и делать по нему клик.
Может у кого есть код такой процедуры? Ну или кто нибуть помогите написать... Потому что никак не могу реализовать...
GvR вне форума Ответить с цитированием
Старый 24.06.2010, 21:33   #2
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Ну...по цвету обьект обнаруживать...тут я думаю лучше получить хендл этого обьекта (Ведь скорее всего это будет окно) и вот тогда можно довольно легко по нему кликнуть.
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 24.06.2010, 22:27   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Снимок экрана и на нем ищем. Правда придется, наверное asm заюзать - раз 1-2 секунды форы.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.06.2010, 22:36   #4
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Можно и без скриншота.
Повесить на таймер:
Код:
var
  ScreenDC: HDC;
begin
  ScreenDC:=GetDC(0);
  //тут поиск (пока не знаю как реализовать)
  ReleaseDC(0, ScreenDC);
end;
Alex Cones, а зачем асм?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 24.06.2010, 23:00   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

1-2 секунды. За такое время стандартными средствами Вы врятли просканируете 1024 х 768 = 786 432 пикселей
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.06.2010, 23:07   #6
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
1-2 секунды. За такое время стандартными средствами Вы врятли просканируете 1024 х 768 = 786 432 пикселей
Это смотря какой величины область искать, можно же не каждый пиксель проверять, а каждые 10, например. Тогда придется сделать только 7 864 шага. А это вполне приемлимо каждые 2 сек.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 24.06.2010, 23:07   #7
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

можно попробовать уложиться по времени через scanline и производить поиск от центра экрана если это что-то вроде окна или кнопки в окне.
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 24.06.2010, 23:09   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Не стоит забывать, что SetCursorPos и MouseEvent тоже время кушают, поэтому на все про все останется от силы секунда.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.06.2010, 23:16   #9
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
Не стоит забывать, что SetCursorPos и MouseEvent тоже время кушают, поэтому на все про все останется от силы секунда.
О чем спор? Может там комп Core i7 разогнанный до 8Ггц? Тогда все пучком!
А может и Дурон 333Мгц? Тогда даже ассемблер не поможет

Тут не все условия задачи выложены, ИМХО.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 24.06.2010, 23:26   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Сообщение от ex.cluz Посмотреть сообщение
Можно и без скриншота.
Повесить на таймер:
Код:
var
  ScreenDC: HDC;
begin
  ScreenDC:=GetDC(0);
  //тут поиск (пока не знаю как реализовать)
  ReleaseDC(0, ScreenDC);
end;
Эм... Так это и есть скриншот...

И что значит "асм"? Компилятор прекрасно переводит на него сам... А доступ к памяти от "асма" быстрее не станет... =\
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом можно изменять цвет фона и цвет шрифта в Label? jungle Win Api 17 21.09.2009 00:38
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05