Что нового

Мышь, клавиатура Наведение прицела на определенный цвет

naruta

Новичок
Сообщения
4
Репутация
0
Добрый день, дорогие друзья. Требуется ваша помощь!

HotKeySet("p", "aim")
HotKeySet("{ESC}", "end")


while 1
sleep(50)
WEnd




Func aim()
while 1
$PIX = PixelSearch(901, 381,1011, 553,0xFF0000)
if IsArray($PIX) Then
MouseClick("left", $PIX[0], $PIX[1],1,1)
EndIf
WEnd
EndFunc


Func END()
Exit
EndFunc
Когда подводишь прицел к красной части он не наводиться на него, а дергается в небо, пол и т.д
Помогите что делать. Желающим помочь могу показать видео как он работает.
 

Вложения

  • mta-screen_2021-07-20_20-59-13.png
    mta-screen_2021-07-20_20-59-13.png
    991.9 КБ · Просмотры: 13

Oki

Продвинутый
Сообщения
452
Репутация
62
Похоже на то, что многие функции, работающие с координатами указателя мыши в Autoit, срабатывают некорректно по причине того, что Windows присваивает две различных конфликтующих между собой пары координат в случаях, когда работает системное масштабирование экрана монитора, несмотря на то, что в нынешние времена такое масштабирование зачастую является частью рекомендуемых настроек по умолчанию. Поэтому возникает вопрос о том, с каким масштабированием не работает приведённый код, до сих пор не заключённый в требуемый правилами форума тег (видимо, без официального предупреждения от модератора никак). Если масштабирование не 100%, а весьма популярные нынче 125%, то есть вероятность, что только в этом вся проблема.
 

Andrey_A

Продвинутый
Сообщения
323
Репутация
68
весьма популярные нынче 125%
В этой теме есть ссылка на SetProcessDPIAware
 

Oki

Продвинутый
Сообщения
452
Репутация
62
В этой теме есть ссылка на SetProcessDPIAware
Выглядит очень туманно. Есть какой-то внятный компактный пример применения?
 

Andrey_A

Продвинутый
Сообщения
323
Репутация
68
Есть какой-то внятный компактный пример применения?
Если пройдёте по ссылке на англ. форум, то там есть полная информация и функция для разных систем, а по простому если у вас 125% и вы хотите сами управлять координатами окна, то вставляете в начале скрипта
Код:
DllCall("User32.dll", "bool", "SetProcessDPIAware")

После этого функции Autoit, которые неправильно выдавали координаты, начинают возвращать точные данные...
 
  • Like
Реакции: Oki
Верх