1 (изменено: kamenschik, 2015-04-17 23:32:58)

Тема: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Как написать такое - нажатая клавиша А ждёт нажатия клавиши Б и дождавшись выполняет команду?

2 (изменено: yalanne, 2015-04-18 14:57:46)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

SC01E & SC030::msgbox 1; a\ф и b\и

3 (изменено: kamenschik, 2015-04-18 12:08:09)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

yalanne пишет:
a & b::msgbox 1

Мне на это пишет:

Note: The hotkey a & b will not be active because it does not exist in the current keyboard layout.


Несмотря на то что на компьютер установлены два пакета и английский и русский. Вобщем решение нашёл такое что просто переключился на русскую раскладку и вбил в скрипт русские буквы. Как странно..

Спасибо вам за помощь.

4

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Это потому, что кое-кто не знает, что при использовании буквенных горячих клавиш, названия которых меняются при смене раскладки, нужно заменять их vk-кодами.

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

5

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Не было возможности у меня vk код искать под клавишу. Исправил.

6

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

С программой всё хорошо, но вот если попробовать написать отправление  нажатия клавиши {a} в активное окно, то такой вариант уже не подходит. Клавишу отправляет только вторая кнопка, та нажатие которой нужно дождаться, первая вообще ничего не делает

7

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Копайте:
http://forum.script-coding.com/viewtopic.php?id=10519

8 (изменено: yalanne, 2015-04-19 19:34:50)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Символ тильды в начало добавь ~

~SC01E & SC030::msgbox 1

9 (изменено: kamenschik, 2015-04-19 21:15:48)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Так, с клавиатурой такое вышло.

А можно геймпад заставить так делать?
Кнопки Joy1 - Joy12
Программа KeybdHook не видит их юникод, я пробовал просто написать Joy1 & Joy2::Send, {a}
или ~Joy1 & Joy2::Send, {a}
Но тогда, просто Joy2 отсылает {a}

10 (изменено: kamenschik, 2015-04-19 21:50:52)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Понимаю наверное странное желание, и может показаться что при таком наборе низкая скорость печатанья.
Но у меня на геймпаде кнопки рядом, шесть сверху+четыре курка, которые можно схватить четырьмя или жать вместе, поэтому я могу быстро перекатывать палец с нажатой одной кнопки на вторую - выше, ниже или сбоку от неё. Делается это очень быстро. Комбинаций достаточно. Главное иметь хорошую память.
опять же это хороший тренинг для памяти.
Ну не умею я вслепую печатать на клавиатуре и попытки это изучить меня утомляют и злят - всё время мажу мимо.

Да и вообще можно не только для печати текста, а что угодно на комбинации повесить.

11

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

И ещё такая проблема стоит - я этот геймпад не могу использовать с игрой Метро2033. Он почему-то не определяется.
Единственная возможность играть с ним в неё это превратить его в мышь и клавиатуру. Но к сожалению эта игра не поддерживает команд типо Shift+A, она назначает на действие либо Shift отдельно, либо А отдельно от Shift.
Но тогда мне не хватает кнопок для всех действий. И единственное решение это если скрипт позволит ввести кнопку через сочетание клавиш. Но тут ещё проблема - переназначенную клавишу нельзя записать в сочетание и назначить на это сочетание отправление другой клавиши. Как бы переназначение на переназначение не действует. Следовательно нужно чтобы именно Joy1 & Joy2

12

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Я решил эту проблему очень простым методом.
Например: первый скрипт запускается а в нём написано что Joy9 запускает на время другой скрипт, эту строчку можно приписать к скрипту который делает из геймпада мышь

kamenschik пишет:
Joy9::Run, C:\Users\Моё_имя\Desktop\xxx.ahk

Второй скрипт закрывается сразу поле того как один из Joy1 или Joy2 отсылает команду

kamenschik пишет:

Joy1::
Send, {a}
KeyWait Joy1
ExitApp

Joy2::
Send, {b}
KeyWait Joy2
ExitApp




Но мне было бы интересно написать всё в одном скрипте. Так что если есть возможность всётаки заставить одну кнопку геймпада ждать нажатия другой - пишите. Буду джать

13

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

если я правильно понял то вот так:

Joy9::q:=1
#if q
Joy1::
q:=0
Send, {a}
KeyWait Joy1
return

Joy2::
q:=0
Send, {b}
KeyWait Joy2
return
#if

14 (изменено: kamenschik, 2015-04-21 00:43:20)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

Кстате, кому интересно что за геймпад с шестью кнопками рядом , вот он:
http://market.yandex.ru/product/7353402 … track=tabs
Еть проводной и без, обожаю его теперь.
Понял как заточить и под WoW - подобные игры

15

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

kamenschik, ознакомьтесь с этой темой, отредактируйте свой пост.

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

16 (изменено: kamenschik, 2015-04-20 19:49:24)

Re: Как написать чтобы кнопка ждала нажатия другой, а уже потом выполняла

teadrinker пишет:

kamenschik, ознакомьтесь с этой темой, отредактируйте свой пост.

Я воспользовался URL, поставил ссылку между ними, но по каким-то причинам что-то пошло не так. Возможно из-за того что ставил с мобильника. К слову - не выходило нормально поставить, попал курсором между с третьего раза. Показалось что попал. Сейчас исправлять не буду потому что нет доступа к компьютеру, приду домой обязательно поправлю.