1 (изменено: yanko, 2021-06-23 02:47:31)

Тема: AHK: обьяснение работы кода


vk54::
    T := !T 
    settimer, Loop, -1
    return

Loop:
    While T
{
	Run www.google.com
	Sleep 5000
}
	return

Собрал его просто для примера, он открывает гугл каждые 5 секунд, включается на Т, выключается на Т также.Но я собрал его по сути из чужого кода, а я хочу именно понимать что я делаю, а не сделать лишь бы работало.Не понимаю что делает   T := !T, settimer(зачем он тут?), Loop, -1, и не понимаю что в описании луп делает While T,  когда я писал простой код для тренировки, я просто вписывал в луп действие в скобки, а для чего тут перед началом While T?

2 (изменено: __Михаил__, 2021-06-24 00:48:08)

Re: AHK: обьяснение работы кода

T := !T 

Логическое Истина / Ложь в любом языке, другими словами строка меняет на противоположное значение. Если было 0 станет 1 и наоборот.
While - команда начать Цикл. 'T' это переменная, если она равна 1 то код в скобках будет выполнятся.

settimer, Loop, -1

Запускает метку под названием 'Loop' один раз.

Скобки объединяют код в блок для выполнения. Тоже является важным в языках программирования.

Можно обойтись без таймера и метки таким образом:

#MaxThreadsPerHotkey 2
;https://www.autohotkey.com/docs/commands/_MaxThreadsPerHotkey.htm

F3::
T := !T 
While T
{
 Send, .
 Sleep 1000
}
Return

Учите основы, дабы не задавать глупые вопросы. Например тут.

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

3

Re: AHK: обьяснение работы кода

__Михаил__ пишет:

Логическое Истина / Ложь

По-моему это всё-таки называется "логическое НЕ". Это такой ящик, на вход которого можно подавать 0 или 1. Если на вход подать 0, на выходе будет 1. Если на вход подать 1, на выходе будет 0.
И вместо восклицательного знака можно писать "NOT".
Это логично работает, пока на вход подаём 0 или 1.

4

Re: AHK: обьяснение работы кода

ypppu пишет:

Это логично работает, пока на вход подаём 0 или 1.

Не совсем верно. Логическое отрицание работает с любыми данными (по-крайней мере в AHK). Всё, что не является числом 0 или пустой строкой считается истиной (или true):

myVar := {} ; для примера возьмём переменную с объектом
MsgBox, % myVar := !myVar
MsgBox, % myVar := !myVar
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: обьяснение работы кода

Я имел в виду логично работает с точки зрения человека, изучавшего предмет "ЭВМ" или "информатика" в школе или техникуме. То есть имеющего минимальное представление.

я хочу именно понимать что я делаю, а не сделать лишь бы работало

В AHK оно, конечно, и в других случаях тоже работает. Но до них ещё дойти надо.