Что нового

Распознание цвета пикселя и нажатие кнопки

Naror

Новичок
Сообщения
8
Репутация
0
Здраствуйте, я новичек в AutoIt'e и решил попросить помощи
Вообщем хотелось бы чтобы разжевали такую идею: При изменение цвета на красный в радиусе 2-3 пикселей в центре и от центра экрана автоматически жмакалась назначеная в скрипте кнопка до погасания...
Несколько тем которые я смотрел работали непонятно мне, 1 из них искал по всему экрану пиксель красного цвета и соответсвенно перебрасывал мышку на этот пиксель, а не жал заданную кнопку
Еще бы при этом всём хотелось бы реализация определения центра экрана на различных разрешениях.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Naror [?]
Вообщем хотелось бы чтобы разжевали
Первое что нужно сделать, это открыть AutoIt3.chm и внимательно изучить!
Если у вас есть опыт в программирование, то можно бегло пробежаться!
Далее, попытаться воплотить свою идею в коде!
Если у вас не будет получаться, а вы очень хотите добиться своей цели, выкладывайте свой код в эту тему.
Вам обязательно помогут!!! ;)
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
Код:
HotKeySet("{ESC}","_esc") ; ESC - выйти

While 1
PixelSearch(@DesktopWidth/2-3,@DesktopHeight/2-3,@DesktopWidth/2+3,@DesktopHeight/2+3,0xFF0000,20) ; ищем красную точку +-3 пикселя от центра монитора (разрешение любое)
If Not @error Then
   Send("{ENTER}") ; если находит красную точку в центре экрана жмет интер
   TrayTip('','Красная точка',5)
EndIf
Sleep(50)
WEnd

Func _esc()
   Exit
EndFunc
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
Guezt Gutsy
Скрипт сам по себе работает, но как то не правильно: когда он в центре экрана находит красную точку он не жмет интер,а выводит сообщение "Красная точка" через секунд 5 после исчезновения точки скрипт перестает работать и автоматически выходит
qsort
У меня лично при нахождение красной точки в центре экрана программа сразу выходит, и мне не понятно почему у тебя ControlClick унесено в комментарий и что собсно означает вторая строчка после ControlClick'a =_=
Пытался мудрить с твоим скриптом, но добился только ошибки, вылетания из программы сразу или просто ее не работоспособности :wacko:

P.s ControlClick вообще сама по себе для меня сложная команда т.к она еще и пытается найти окно в которую надо посылать команду
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
qsort
Собсно так и сделал, но программа не как не реагирует... Из комментариев унес, ControlClick("***", "***", "Button1")
Прогу пока не свечу
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
Это я все понял, моя проблема в том что он либо не находит окно программы, либо просто не производит реакции...
пытался с MsgBox собсно и итог тот же

Добиться я пытаюсь автоматизации, при нахождение красного цвета в центре экрана нажимать Button1
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
Я это и пытаюсь сказать. Окно есть, цвет изменился, а реакции нету
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
Добился работоспособности, но только с MsgBox
с командой ControlClick беда другая... я запускаю скрипт и переключаюсь на окно, через ~150мсек программа закрывается автоматически... Если не переключаться программа остается работать
______________________________________________________________________________________


Заметил только что у тебя нету определения именно красного цвета он производит действо при изменение цвета с белого на любой другой =_=
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
qsort сказал(а):
Если окна такого не существует, конечно, оно и найдено не будет! Если же при работе скрипта не вылетает мессагабокс, то значит цвет в центре не изменялся. Тут не работать просто нечему...

{LangWarn.SModer}

qsort, сколько мне еще нужно сделать тебе предупреждений, чтобы ты воспринял это всерьез?
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
Нечего сказать в оправдание, кроме как проморгал :D
Переделал скрипт, но нажимать Button1 он не хочет все равно
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
qsort сказал(а):
сообщение в виде окна характерного для операционных систем оконного типа, именуемого по-разному, но в Autoit обычно появляющегося в результате применения функции MsgBox()

Ты явно напрашиваешься на программный запрет на пользование данным интернет-ресурсом накладываемый администратором или модератором этого сайта (форума) и именуемый в просторечии баном.

P.S

"MsgBox" или "Окно уведомлений" вполне достаточно.

P.S.S

Сарказм тут неуместен.
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
OffTopic:
qsort
Код:
PixelChecksum()
изначально ошибочный вариант, так как если просто передвинуть окно он сработает, так же как и если бы нашел красную точку, хотя там может появится точка любого цвета. ИМХО
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
OffTopic:
Naror [?]
При изменение цвета на красный в радиусе 2-3 пикселей в центре и от центра экрана автоматически жмакалась назначеная в скрипте кнопка до погасания...
а я думал такая :smile:
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
Naror
по идее скрипт не должен завершатся, что за программа то такая? попробуй добавить в конце скрипта эту строчку:
Код:
Run(@ScriptDir&'\Click.exe')

И скомпилируй скрипт в Click.exe это должно перезапускать скрипт, если по какой то причине он выходит из бесконечного цикла(по по идее не должно такого быть, может это защита программы?)
 
Автор
Naror

Naror

Новичок
Сообщения
8
Репутация
0
qsort сказал(а):
К вопросу о постановке задачи, как оно было: (мы мирные люди, но все же кэш-сервер стоит на запасном пути)
ex.bmp
OffTopic:
Пытаешься что то доказать? я и не отрицаю что я редактировал сообщение.. А точно вы наверное просто обиделись и начали оффтопить


помог вот этот скрипт
Код:
While 1
PixelSearch(@DesktopWidth/2-6,@DesktopHeight/2-6,@DesktopWidth/2+6,@DesktopHeight/2+6,0xFF0000,20)
If Not @error Then
   Send("{LButton}")
EndIf
Sleep(50)
WEnd
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Naror
{CodeWarn.SModer}
{TopicSolvedInfo}
 
Верх