1

Тема: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Здравствуйте друзья! Есть ли у  вас возможность подсказать как реализовать код который бы переключал активный скрипт по нажатию кнопки?

У меня есть 2 простых скрипта:

vk01:: Send, {vk76 down}
vk01 up:: Send, {vk76 up}
return

и

vk01:: Send, {vkA5 down}
vk01 up:: Send, {vkA5 up}
return

Возможно ли поместить их в один файл и переключать их активность одной кнопкой? Например запустили файл, работает первый скрипт а второй не работает. Если нажать кнопку "1" первый скрипт становится не активен но второй стал активен. Если еще раз нажать кнопку "1" то первый скрипт снова активен а второй не активен.
Возможно ли такое реализовать?

2 (изменено: __Михаил__, 2022-03-07 21:26:59)

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

АХК позволяет манипулировать горячими клавишами по умолчанию, а тут используется строгая привязка к действию, что без условий #IF не обойти, либо менять переменным значения.

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

3

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Вот вариант с переключением отправляемой клавиши по '1':

Keys := ["vk76", "vkA5"] ; F7, RAlt
SW := 1 ; Флаг клавиши.
Return

1:: SW := !SW	; Меняет клавишу отправки.
vk1:: SendInput, % "{" Keys[SW+1] " Down}"
vk1 Up:: SendInput, % "{" Keys[SW+1] " Up}"
Win10x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Не проще #If?

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

5

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Возможно, приведите сокращённый вариант.

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

6

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

В каком смысле сокращённый? Тут нечего сокращать.

toggle := false
1:: toggle := !toggle

#If !toggle
LButton:: Send, {F7 down}
LButton up:: Send, {F7 up}

#If toggle
LButton:: Send, {RAlt down}
LButton up:: Send, {RAlt up}

Отличие здесь в том, что сразу видно, что код делает.

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

7

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

__Михаил__, teadrinker
Спасибо вам большое! Очень выручили.

8

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Здравствуйте.
Подскажите пожалуйста можно ли как-то ваш скрипт модернизировать и сделать так что бы он переключал с одной кнопки 3 скрипта в место двух?

9

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Не очень понял, что за скрипты. Там просто горячие клавиши переключаются.

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

10

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Да, извините. Я имею в виду именно горячие клавиши.
на подобии

LButton:: Send, {RAlt down}
LButton up:: Send, {RAlt up}

Имею потребность в аналогичном вашем коде но только что бы он переключался между тремя горячими клавишами.

11

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

А по какому алгоритму?

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

12 (изменено: SHOX, 2022-10-23 21:28:38)

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Поочерёдно, по кругу. Что бы при каждом нажатии кнопки - активная горячая клавиша переключалась по кругу.

13

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Точку потеряли.

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

14

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Понятно. Всего Вам хорошего.

15

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Если понятно, то почему бы не исправить? На форуме есть правила, они для всех одинаковые. Хотите получать здесь помощь — выполняйте их.

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

16 (изменено: SHOX, 2022-10-23 23:33:29)

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Хорошо. Я посчитал что Вы просто не доброжелательно придираетесь на счет точки, Правила прочитал, точку поставил.

17

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Попробуйте так:

counter := 1
1:: counter := mod(counter, 3) + 1

#If counter = 1
LButton::a

#If counter = 2
LButton::b

#If counter = 3
LButton::c

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

18

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Как и в прошлый раз работает шикарно. Благодарю на помощь!

19 (изменено: SHOX, 2022-10-24 04:58:33)

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

teadrinker
Хотел еще спросить можно ли Ваш скрипт закрепить за одним приложением? Чтобы данный скрипт работал только в одном активном окне, приложении.
К сожалению команда:

#IfWinActive,

не работает.
Полагаю не работает из-за:

#If

в скрипте.

20

Re: AHK: Код который бы переключал активный скрипт по нажатию кнопки

Добавьте к каждому #If дополнительное условие:

#If WinActive("My Window") && counter = 1
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder