1

Тема: AHK: Любая клавиша перед Shift

Доброго времени суток форумчане! Вопрос следующий.
Есть вот такой код:

+a::+b
+b::+a

Код работает, при нажатии "Shift+a" нажимается "Shift+b" и наоборот, при учете если соблюдать эту строгую последовательность нажатия клавиш. Но если нажимается клавиша "a" или "b" до того, как происходит зажатие клавиши шифт - результата нет.
Как поставить перед клавишей "Shift" (т.е. "+") любую другую клавишу, чтобы получилось "a+Shift = Shift+b"? Что-то вроде следующего примера (не работает):

a+::+b

2

Re: AHK: Любая клавиша перед Shift

Справку не дочитали?

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

3

Re: AHK: Любая клавиша перед Shift

teadrinker
Дочитал, но, вероятно, не всё уяснил
Если дописываю ваш код, то клавиши "a" и "b" перестают реагировать на нажатие, и нажатие на них производится только при зажатом шифте. Код получается такой:


+a::+b
+b::+a
a & Shift:: +b
b & Shift:: +a

Отдельно прописанный ваш пример тоже порождает подобную проблему... Можно как нибудь обойти эту проблему, чтобы "сольное" нажатие на клавишу так-же работало?

4

Re: AHK: Любая клавиша перед Shift

gorods пишет:

чтобы получилось "a+Shift = Shift+b"

[A]↓ = [A]↓
[A]↓, [Shift]↓ = [Shift]↓[b]↓[b]↑

Это не решаемая система, ибо в момент зажатия клавиши [A] непонятно следует ли сразу ли отправить ее нажатие, либо ждать нажатия шифта.

Непротиворечивые варианты:

[A]↓, [A]↑ = [A]↓[A]↑      ; одиночное нажатие А по отжатию физической клавиши
[A]↓, [Shift]↓ = [Shift]↓[b]↓↑
;или
[A]↓ = [A]↓
[A]↓, [Shift]↓ = [A]↓, [A]↑[Shift]↓[b]↓↑   ; нажатие А идет сразу
;или
[A]↓ = [A]↓
[A]↓, [Shift]↓ = [A]↓, [A]↑[BackSpace]↓↑[Shift]↓[b]↓↑

5 (изменено: EV, 2020-05-23 23:53:24)

Re: AHK: Любая клавиша перед Shift

gorods пишет:

Можно как нибудь обойти эту проблему, чтобы "сольное" нажатие на клавишу так-же работало?

~a & Shift:: +b

6 (изменено: gorods, 2020-05-24 01:04:32)

Re: AHK: Любая клавиша перед Shift

stealzy

Ух, вот оно как, спасибо за разъяснения! Пойду изучать материал и попробую разобраться с этим.

EV

Да, ваш код дает клавише сольно произвести нажатие, спасибо.