Тема: AHK: Вывести значения в переменные за пределы функции
Вот такой код. Не мой, но мне нужен.
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
;Example for ProShow
#IfWinActive ahk_exe proshow.exe
F4::
timelineClick([A_ScriptDir . "\ProShow\ImageSearch\Blue_commet.png"], [[14,30]], [109])
timelineClick(images,imageSizes, yOffsets, hold=False)
{
static s_lastImage, s_TagX, s_TagY
;преобразовать отдельные свойства в массив
If !IsObject(images)
images := [images]
If !IsObject(imageSizes[1])
imageSizes := [imageSizes]
If !IsObject(yOffsets)
yOffsets := [yOffsets]
MouseGetPos, MouseX, MouseY
;Проверить изображение на последней позиции
Try
{
searchImage := images[s_lastImage]
Imagesearch, , , s_TagX, s_TagY, (s_TagX+imageSizes[s_lastImage][1]), (s_TagY+imageSizes[s_lastImage][2]), %searchImage%
if ErrorLevel > 0
throw
}
catch e
{
;искать везде все изображения
for image in images
{
searchImage := images[image]
ImageSearch, s_TagX, s_TagY, 0, 15, %A_ScreenWidth%, %A_ScreenHeight%, %searchImage%
if ErrorLevel > 0
continue
else
{
;Success
s_lastImage := image
break
}
If ErrorLevel > 0
{
msgbox, Couldn't find reference image.
Return
}
}
}
a = %s_TagX%
b = %s_TagY%
}
msgbox, %a%, %b%
return
В общем, код работает. Находит изображение. Супер! Но не могу вывести координаты найденой картинки в переменные для дальнейшего взаимодействия. Просто буду "далее плясать от этих координат." Они есть только в моменте работы функции и не отдаёт даже в msgbox. но если msgbox будет после a,b переменных (сразу), то покажет. Я новичок, и голову сломал.