Page 1 of 1

Автозамена при помощи скрипта

Posted: 22 Oct 2021, 17:43
by Gravity
Возьмём для примера автозамену:
:*:фа:: фамилия имя

И скрипт:
^1::Send фа

При активации скрипта пишет фа, но автозамена не срабатывает, возможно ли её активировать не вводя вручную?
Если конкретнее то мне каждые пару минут приходит новая фамилия и есть длинный скрипт с несколькими строками "Send Фамилия". И чтобы не искать и не менять каждый раз в этих строках старые фамилии на новые, я хочу использовать автозамену ибо лучше ничего не придумал. В таком случае фамилию придётся менять только в автозамене а в самом скрипте всегда будет "Send фа". Как мне это реализовать и есть ли альтернатива?

Re: Автозамена при помощи скрипта  Topic is solved

Posted: 23 Oct 2021, 00:13
by mcl
SendLevel/#InputLevel:
By default, hook hotkeys and hotstrings ignore keyboard and mouse events generated by any AutoHotkey script

Code: Select all

:*:фа::фамилия имя

^1::
	SendLevel 1
	SendEvent фа
	Return
Однако, SendEvent, как правило, медленнее и менее надёжен, чем SendInput.

Я бы написал в начале кода функцию, которая отсылает фамилию, и вызывал из разных мест именно её:

Code: Select all

SendFamilyName() {
	Send фамилия имя
}

:X*:фа::SendFamilyName()

^1::SendFamilyName()

Re: Автозамена при помощи скрипта

Posted: 23 Oct 2021, 09:34
by Gravity
@mcl
Тысяча благодарностей! Оба варианта работают стабильно