Тема: AHK: Вызов функции через время
Доброго времени суток, меня интересует вызов функции через определенное время. Что-то по типу SetTimer, только с вызовом функции, а не метки.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Доброго времени суток, меня интересует вызов функции через определенное время. Что-то по типу SetTimer, только с вызовом функции, а не метки.
SetTimer и используйте.
SetTimer, Go, 5000
return
F2::
Go:
q()
return
q()
{
msgbox, Привет
}
qqlexa, сами-то запускали свой код?
teadrinker, я не хочу делать метку под функцию, может есть вариант лучше? Тот же DllCall (если с помощью его можно)?
В общем да, сначала следовало бы хелп почитать. На случай, если не разберётесь:
#Persistent
; если без параметров
SetTimer, Func1, -1000
; если с параметрами
funcObj := Func("Func2").Bind("Заголовок", "A_ThisFunc", 1)
SetTimer, % funcObj, -3000
Return
Func1() {
MsgBox,, % " ", % A_ThisFunc, 1
}
Func2(title, text, timeout) {
MsgBox,, % title, % %text%, % timeout
ExitApp
}
teadrinker, я пробовал искать, но как видно - плохо получилось.
Очень благодарен!
teadrinker, А что не работает то?
Это не полный скрипт, а фрагмент кода который нужно использовать для вызова функции. Добавил включение этой метки так же на F2 чтобы скрипт продолжал работу, всё работает.
меня интересует вызов функции через определенное время. Что-то по типу SetTimer, только с вызовом функции, а не метки.
SetTimer, Go, 5000 return F2:: Go: q()
А если допустим функция класса?
SetTimer, test.function, -1000
class test
{
funcion()
{
msgbox, % "Тест"
}
}
SetTimer, % ObjBindMethod(test, "function"), 1000
UPD. Хммм, такое не работает. Думаю, это из-за того, что ObjBindMethod возвращает объект, а не функцию.
Если только костылем.
#Persistent
SetTimer, function, 2000
return
function() {
;fn:=ObjBindMethod(say, "my_name")
;%fn%("John")
say.my_name("John")
}
class say {
my_name(name) {
msgbox % "Hello, " name "!"
}
}
#Persistent
timer := ObjBindMethod(test, "funcion", "Привет!")
SetTimer, % timer, -1000
class test
{
funcion(txt)
{
msgbox, % txt
ExitApp
}
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться