Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Всем доброго времени суток,я ищу плагин который мог бы определить цвет в указанной точке,если мне не изменяет память,я видел плагин некоторое время назад, но он определял цвет только на картинке.Если вам не сложно не могли бы вы помочь мне с поисками данного плагина. Заранее спасибо и извините за мою слепость если он есть и я его не нашел. Всех с наступившим Новым Годом!
Добавлено (03 Января 2013, 01:23) --------------------------------------------- Извините меня,я с этим новым годом совсем запутался ,точнее мне нужно,что бы плагин искал определенный цвет на экране,а потом сохранял его координаты в переменную.
Об самом плагин не слышал, но можно попробовать определенную связку. Фоткаешь экран благодоря hpwutility, cохраняешь изображение в файл. Далее через neophp запускаешь специальный файл (вот в этой ссылке написано как найти пиксель с заданным цветом - http://php.ru/forum/viewtopic.php?t=39951) Результат выводишь через есно. Может есть и получше способ, но я бы сделал это так. #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
делаете скриншот экрана одним из кучи плагинов (напр. плаг hpwUtility->hpwScreenShot), затем проверяете полученную картинку попиксельно, получая цвет каждого пикселя (напр. плаг hpwImage->hpwImageGetColor) в цикле, как нашли нужный цвет - запомнили координаты, пошли далее... Как задавать вопросы
Пхп по сути быстрее необука будет. Я думаю за одну-две секунды справится. #define i *want #define set (char*) #define get (char) #define want = #define another char #define but ;
Если честно я понять суть задачи не могу. Найти цвет и остановиться? Найти все координаты с определенным цветом? Нахрена это нужно?
Добавлено (04 Января 2013, 16:20) ---------------------------------------------
Цитата (Bloer2012)
но думаю,что нужного мне быстродействия из-за этой связки не получится,
А тут и без связки.... Разрешение 1920х1080 просканировало только на получение и сравнение попиксельно цвета за 27 минут. Получается сканирует 1280 пикселей в секунду. Это без записи и сохранения координат. Какое уж тут быстродействие?
Цитата (bestful)
Пхп по сути быстрее необука будет. Я думаю за одну-две секунды справится.
Mishem, я хочу сделать программу которая искала бы определенный цвет на мониторе(точнее сказать именно в программах которые находятся на мониторе),после этого она сохраняла координаты найденных точек в переменную. Но я немного запутался с плагинами: RacAutoIt3x и hpwUtility,а именно с командами RAC_WinGetHandle и RAC_WinGetProcess для получения hWND и pId.Работать с некоторыми окнами приложений они отказываются,они просто бездействуют и не записывают в переменную RAC_return ничего.После того как я определил hWND(обычно он выгляди так 001009EA,бывает просто цифры),использую функцию hpwGetObjRect в плагине hpwUtility для поиска координат приложения,координаты окна приложения записываются неправильно,и из-за этого не получается сделать скрин приложения. Команду hpwGetObjRect пытался сделать и с pID,все без результатно. P.S. Я прикрепил публикацию, что бы вы смогли понять суть моей проблемы в командах и помочь мне ее решить. Заранее спасибо
Но нужно иметь ввиду что если название не полное, а окон несколько в которых встречается такое название, то определится то окно, которое находится выше. К примеру если запущена НБ и у нее заголовок NeoBook 5 Professional и в тот же момент запущен отладчик НБ у которого заголовок Отладчик NeoBook, а мы для поиска вводим только NeoBook, то получим координаты отладчика.
Делать скриншот не обязательно, можно просто переместить окно на передний план и использовать команду ksGetPixelColor из плагина ksFunctions для того что бы получить определенный цвет. Но окно обязательно должно быть на переднем плане.
Я так и не понял, зачем и где это может понадобится?
Добавлено (05 Января 2013, 03:08) --------------------------------------------- В твоем примере координаты окна определяются правильно, но определение идет всего окна вместе с заголовком, рамкой, строкой состояния.
Те команды что выше, определяют клиентскую часть окна. Именно то что тебе надо. Плюс ко всему нужно будет еще сделать проверку на существование, положение и т. д. окна. Если окно свернуто, то его надо будет развернуть. Короче эксперементируй.
Для обхода этой "неприятности" можно воспользоваться командой zmFindWindow, которая ищет окно по точному соответствию заголовка. Но и в этом случае, если имеются два окна с абсолютно одинаковыми заголовками, будет найдено верхнее окно. Эту "неприятность" можно попытаться объехать, если задействовать для поиска дополнительно параметр имя класса окна.
Bloer2012, такой совет (на будущее): плагин RacAutoIt3x используйте только в самом крайнем случае, когда все другие средства уже исчерпаны. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Спасибо за помощь , с этими командами разобрался, но столкнулся еще с одной проблемой,никак не могу получить координаты цвета с помощью команды hpwImageGetColor ,если вам не сложно можете написать эту команду сюда,что бы я мог понять, что и как заполнять в ней.
Добавлено (05 Января 2013, 13:15) ---------------------------------------------
Цитата (mishem)
Я так и не понял, зачем и где это может понадобится?
Есть у меня один чат, но когда приходит сообщение он не издает звук, я хочу, что бы мое приложение издавало звук при приходе сообщения. Чат у меня всегда висит на мониторе, а вот меня около него часто не бывает. Знаю, затея глупая , но все же для меня полезная.
Она получает не координаты, а цвет по заданным координатам.
Я понял, сейчас попробую зациклить команду ksGetPixelColor,что бы она отсканировала нужную область и сохранила все это в переменные,потом проверить эти переменный на наличие нужного цвета.
лучше сразу проверять, иначе долго сканировать будет. Смотри пример.
Спасибо ,сейчас буду с вашей разбираться.
Добавлено (05 Января 2013, 18:19) --------------------------------------------- Вот код,но почему то дальше 3 цикла не идет,в отладчике показано что функции не выполнены, почему?
zmSetForegroundWindow "[hWND]" SetVar "[x]" "251" SetVar "[y]" "575" Loop "1" "[num]" "[Counter]" ksGetPixelColor "[x]" "[y]" "[color]" If "[color]" "=" "0,0,0" AlertBox "Нашел!" "Нашел!" Else Math "[x]+1" "0" "[x]" If "[x]" "=" "707" Math "[y]+1" "0" "[y]" EndIf EndIf EndLoop
Добавлено (05 Января 2013, 18:22) --------------------------------------------- Все разобрался, в переменной [num] не было числа и поэтому не получалось.
А если не секрет что за программа клиент чата... или он в вебе запущен? "Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
мониторить приход новых сообщений видимо по цвету какой-то появляющейся иконки или текста, это чтото новенькое в извращениях... вероятно, задачу можно решить более "традиционными" способами Как задавать вопросы