1

Тема: AHK: Вызов функции через время

Доброго времени суток, меня интересует вызов функции через определенное время. Что-то по типу SetTimer, только с вызовом функции, а не метки.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

2

Re: AHK: Вызов функции через время

SetTimer и используйте.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: qqlexa, 2018-07-06 04:07:57)

Re: AHK: Вызов функции через время

SetTimer, Go, 5000
return
F2::
Go:
q()
return
q()
{
msgbox, Привет
}

4

Re: AHK: Вызов функции через время

qqlexa, сами-то запускали свой код?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Вызов функции через время

teadrinker, я не хочу делать метку под функцию, может есть вариант лучше? Тот же DllCall (если с помощью его можно)?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

6

Re: AHK: Вызов функции через время

В общем да, сначала следовало бы хелп почитать. На случай, если не разберётесь:

#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
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Вызов функции через время

teadrinker, я пробовал искать, но как видно - плохо получилось.
Очень благодарен!

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

8

Re: AHK: Вызов функции через время

teadrinker, А что не работает то?
Это не полный скрипт, а фрагмент кода который нужно использовать для вызова функции. Добавил включение этой метки так же на F2 чтобы скрипт продолжал работу, всё работает.

9

Re: AHK: Вызов функции через время

Phoenixxx_Czar пишет:

меня интересует вызов функции через определенное время. Что-то по типу SetTimer, только с вызовом функции, а не метки.

qqlexa пишет:

SetTimer, Go, 5000 return F2:: Go: q()

10

Re: AHK: Вызов функции через время

А если допустим функция класса?

SetTimer, test.function, -1000

class test
{
	funcion()
	{
		msgbox, % "Тест"
	}
}
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

11 (изменено: MandarinKa02, 2018-07-07 16:12:25)

Re: AHK: Вызов функции через время


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 "!"
	}
}

12

Re: AHK: Вызов функции через время

#Persistent
timer := ObjBindMethod(test, "funcion", "Привет!")
SetTimer, % timer, -1000

class test
{
   funcion(txt)
   {
      msgbox, % txt
      ExitApp
   }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder