Другие языки программирования и технологии

Эксперты по ахк, помогите, пожалуйста

Я попытался написать код что бы при возникновении определенного цвета на экране нажималась непрерывно левая кнопка мыши поле того как цвет пропадал она больше не нажималась и так по кругу.Я думал это будет легко но нет. Координаты и цвет я нашел Но после запуска программы нечего не выходит.Подскажите пожалуйста
Вот код:

F12:: Suspend,Toggle
Numpad1::
loop
{
PixelGetColor, color, 752, 943
var1 = %color%
if(var1 = 0x5c005a)
{
Send {LButton}
Random, rand, 60, 100
sleep rand
}
}
Проблема в вашем коде заключается в том, что вы используете оператор if для проверки цвета пикселя, но не используете оператор else для остановки нажатия левой кнопки мыши, когда цвет пикселя больше не соответствует заданному цвету.

Вот исправленный код, который должен работать:

F12::Suspend,Toggle
Numpad1::
loop
{
PixelGetColor, color, 752, 943
var1 = %color%
if(var1 = 0x5c005a)
{
Send {LButton down}
Random, rand, 60, 100
sleep rand
}
else
{
Send {LButton up}
}
}


В этом коде мы добавили оператор else, который отправляет команду {LButton up} для остановки нажатия левой кнопки мыши, когда цвет пикселя больше не соответствует заданному цвету. Также мы добавили команду {LButton down}, чтобы нажать левую кнопку мыши, когда цвет пикселя соответствует заданному цвету.

Обратите внимание, что в этом коде мы используем команду {LButton down} для нажатия левой кнопки мыши и команду {LButton up} для ее отпускания. Это необходимо для того, чтобы избежать нежелательного поведения, когда левая кнопка мыши остается нажатой, когда цвет пикселя больше не соответствует заданному цвету.
ЛД
Людмила Дергунова
14 368
Лучший ответ
Александр *** Спасибо за ответ,но все равно не помогло он просто не хочет кликать левую кнопку мыши.
на чём ты ищешь цвет он криво работает в играх в браузере еще возможно норм и т.д
Артем Панин
Артем Панин
7 589
Проблема в том, что в вашем скрипте отсутствует команда для выхода из цикла, поэтому скрипт никогда не завершится. В результате этого, он может занять слишком много ресурсов компьютера и повлиять на его производительность.

Добавьте команду для выхода из цикла, к примеру, команду "break", когда цвет не соответствует заданному условию. Вот исправленный код:

F12:: Suspend,Toggle Numpad1:: loop { PixelGetColor, color, 752, 943 var1 = %color% if(var1 = 0x5c005a) { Send {LButton} Random, rand, 60, 100 sleep rand } else { break ; добавленная команда для выхода из цикла } } return ; команда для завершения работы скрипта

Также обратите внимание, что в вашем коде нажатие левой кнопки мыши будет происходить через каждые 60-100 миллисекунд в течение всего периода работы скрипта. Это может быть нежелательно, поскольку большое количество нажатий на левую кнопку мыши может быть воспринято компьютером как спам или вредоносную активность. Если вам нужно сократить период нажатий, то попробуйте увеличить диапазон значений, генерируемых переменной "rand".
Александр *** Всё равно нечего не происходит.