1

Тема: AHK: Динамическое создание строк автозамены.

Например, есть список строк автозамены вида:


:*:tt1::
	Ctrl_V("test 1")
	return
:*:tt2::
	Ctrl_V("test 2")
	return
:*:tt3::
	Ctrl_V("test 3")
	return
; 10 штук

:*:тт1::
	Ctrl_V("тест 1")
	return
:*:тт2::
	Ctrl_V("тест 2")
	return
:*:тт3::
	Ctrl_V("тест 3")
	return
; 10 штук

; и ещё подобных по 10 штук, сколько-то раз
Ctrl_V(param) {
	Send { ^a }
	SendInput {Text}%param%
}

Повторяемость налицо. Когда возникает необходимость добавить новый "тesт", нужно скопипастить ручками одну из сборок и внести в копию соответствующие изменения, а если изменяется количество, то по каждой сборке нужно проходить и удалять/добавлять соответствующее количество строк.

Понимаю, как описать скриптом, собирающий из составных частей внешний файл, подключаемый через #include, но возможно ли сделать это в текущем процессе, как, например тут, динамически создаётся список хоткеев.

2

Re: AHK: Динамическое создание строк автозамены.

replace := [ ["tt", "test"], ["тт", "тест"] ]
for k, v in replace  {
   Loop 10
      Hotstring( ":*:" . v[1] . A_Index, Func("Ctrl_V").Bind(v[2] . " " . A_Index) )
}

Ctrl_V(param) {
   Send { ^a }
   SendInput {Text}%param%
}

Так как-то?

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

3

Re: AHK: Динамическое создание строк автозамены.

То, что нужно. Благодарю!