1 (изменено: w0rd3n, 2024-02-04 17:38:30)

Тема: AHK: Автоматизация нажатия кнопок по поиску картинки

У меня на экране появляются кнопки в определённых координатах(я их потом добавлю это X1,Y1 и X2,Y2), эти кнопки я заскринил и закинул в папку(предварительно обрезав).
Мне нужно чтобы когда на экране появлялись кнопки ахк зажимал их(Sleep я укажу потом).
Код не запускается! Огромная просьба подсказать.

; Путь, где хранятся картинки для поиска:
Dir = C:\Users\admin\Desktop\Для ахк

; Список где названия картинок с расширением, в качестве делителя строки будет символ '-'
List = Arrow_Down.png-Arrow_Left.png-Arrow_Right.png-Arrow_Up.png-B.png-D.png-H.png-L.Shift.png-Q.png-R.png-S.png-Space.png-V.png-W.png

; Время ожидания перед очередным поиском картинок: (указываем в мс)
Time :=	5000		; 5 секунд
;Time := 1000*	15	; 15 секунд (можно так)
Return



; F2 - Кнопка запуска таймера, который будет запускать метку 'Search' каждое 'Time' время:
F2::
SetTimer, Search, %Time%
Return

; F6 - Кнопка выключения таймера
F6::
SetTimer, Search, Off
ToolTip, Поиск картинок выключен.
Sleep, 3000
ToolTip
Return


Search:
Loop, parse, List, -
{
 File_Name := A_LoopField
 ImageSearch, Coordinate_X, Coordinate_Y, 0, 0, A_ScreenWidth, A_ScreenHeight, *60 %Dir%\%File_Name%
 If ErrorLevel = 0	; Если картинка найдена:
 {
  MouseMove, %Coordinate_X%, %Coordinate_Y%, 0		; Переместить мышь на картинку
  ToolTip, Найдена: %File_Name%`nПозиция: %Coordinate_X%`, %Coordinate_Y% ,0,0
  Sleep, 1000

; Кнопки, что будут нажиматься: (определение по названию файла - добавить остальные)
  If File_Name = Arrow_Down.png
   ControlSend,, { Down down }
   Sleep, 5000
   ControlSend,, { Down up }
  Else If File_Name = Arrow_Left.png
   ControlSend,, { Left down }
   Sleep, 5000
   ControlSend,, { Left up }
  Else If File_Name = Arrow_Right.png
   ControlSend,, { Right down }
   Sleep, 5000
   ControlSend,, { Right up }
  Else If File_Name = Arrow_Up.png
   ControlSend,, { Up down }
   Sleep, 5000
   ControlSend,, { Up up }
  Else If File_Name = B.png
   ControlSend,, { B down }
   Sleep, 5000
   ControlSend,, { B up }
  Else If File_Name = D.png
   ControlSend,, { D down }
   Sleep, 5000
   ControlSend,, { D up }
  Else If File_Name = H.png
   ControlSend,, { H down }
   Sleep, 5000
   ControlSend,, { H up }
  Else If File_Name = L.Shift.png
   ControlSend,, { LShift down }
   Sleep, 5000
   ControlSend,, { LShift up }
  Else If File_Name = Q.png
   ControlSend,, { Q down }
   Sleep, 5000
   ControlSend,, { Q up }
  Else If File_Name = R.png
   ControlSend,, { R down }
   Sleep, 5000
   ControlSend,, { R up }
  Else If File_Name = S.png
   ControlSend,, { S down }
   Sleep, 5000
   ControlSend,, { S up }
  Else If File_Name = Space.png
   ControlSend,, { Space down }
   Sleep, 5000
   ControlSend,, { Space up }
  Else If File_Name = V.png
   ControlSend,, { V down }
   Sleep, 5000
   ControlSend,, { V up }
  Else If File_Name = W.png
   ControlSend,, { W down }
   Sleep, 5000
   ControlSend,, { W up }




  ToolTip
  Return
 }
 If ErrorLevel = 2
 {
  MsgBox, 8256, ERROR: Ошибка поиска, Не удалось провести поиск. Отсутствует файл %File_name%
  Return
 }
 Else if ErrorLevel = 1
 {
  ToolTip, Картинка %File_name%`nне найдена ,0,0
  Sleep, 1000
  ToolTip
 }

}
Return

2

Re: AHK: Автоматизация нажатия кнопок по поиску картинки

Когда после if или else идёт несколько строк, которые должны принадлежать к этому блоку, они должны быть обрамлены фигурными скобками:

If File_Name = Arrow_Down.png
{
  ControlSend,, { Down down }
  Sleep, 5000
  ControlSend,, { Down up }
}
Else If File_Name = Arrow_Left.png
{
  ControlSend,, { Left down }
  Sleep, 5000
  ControlSend,, { Left up }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: w0rd3n, 2024-02-04 18:37:18)

Re: AHK: Автоматизация нажатия кнопок по поиску картинки

teadrinker А где писать X1,X2,Y1,Y2. Где он ищет похожую картинку на экране.

4

Re: AHK: Автоматизация нажатия кнопок по поиску картинки

w0rd3n ImageSearch в помощь.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101