1

Тема: AHK: Сочетания клавиш с использованием залипания клавиши

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

нажимаем пробел (vk20) и отпускаем

нажимаем 1 (vk31) - срабатывает скрипт для сочетания:
пробел & 1::{скрипт}

нажимаем 1 - если до этого пробел был нажат 2 раза или скрипт уже был запущен:
1 запускает обычное нажатие 1

Пытался сделать, но не работает(

vk20::
If isKeyPressed := !isKeyPressed
return

vk31::
if isKeyPressed
{
send, {vk32}
isKeyPressed = !isKeyPressed
}
else
{
send, {vk31}
}
return

Так тоже не получается( Сочетание работает, только если клавиша удерживается.

vk20:: Send, % (State := !State)? "{vk20 Down}":"{vk20 Up}"

vk20 & vk31::
send, {vk32}
return

2 (изменено: creature.ws, 2012-09-20 11:57:00)

Re: AHK: Сочетания клавиш с использованием залипания клавиши

~Space::
    KeyWait, Space
    toggleAction := !toggleAction
    return

#if toggleAction
    vk31::MsgBox пробел был нажат нечётное количество раз

3 (изменено: UrfinJus, 2012-09-20 17:11:34)

Re: AHK: Сочетания клавиш с использованием залипания клавиши

creature.ws пишет:
~Space::
    KeyWait, Space
    toggleAction := !toggleAction
    return

#if toggleAction
    vk31::MsgBox пробел был нажат нечётное количество раз

Почему-то не работает с этим знаком - #

Возникает ошибка:

Error at Line 6.
Line Text: #if toggleAction
Error: This line does not contain a recognized action

Если без него - то при нажатии пробела и последующем нажатии клавиши 1 - всегда появляется надпись "пробел был нажат нечётное количество раз". Т.е. даже если количество четное.

4

Re: AHK: Сочетания клавиш с использованием залипания клавиши

AHK_L  Last update: August 3, 2012 - v1.1.08.0
AHK_Basic Last update: September 25, 2009 - v1.0.48.05
При использовании ныне актуальной версии исчезают проблемы с «не работает с этим знаком».

5 (изменено: Irbis, 2012-09-20 21:51:56)

Re: AHK: Сочетания клавиш с использованием залипания клавиши

AHK_L  v1.1.08.01, если уж быть педантичным.

Регулярно у пользователей возникает вопрос "Почему у меня не работает скопированный скрипт?", поэтому предлагаю как-то осветить этот вопрос в этой теме, например.

6

Re: AHK: Сочетания клавиш с использованием залипания клавиши

Да, согласен, напишу, как руки дойдут.

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

7

Re: AHK: Сочетания клавиш с использованием залипания клавиши

А другого способа нет? Скрипт вроде последний установлен с офф сайта.
www.autohotkey.com/download/
AutoHotkey - version 1.0.48.05 (latest)

8

Re: AHK: Сочетания клавиш с использованием залипания клавиши

UrfinJus, подавляющее большинство скриптов рассчитано на AHK_L, ссылка в посте #4. Обратная совместимость не гарантируется.

9

Re: AHK: Сочетания клавиш с использованием залипания клавиши

Спасибо! С L версией работает. А как клавише послать саму себя? Чтобы при включении флажка пробелом и нажатии 1 - посылалась клавиша 1. Т.е. что такое нужно прописать после :: чтобы клавиша посылала сигнал изначальной своей сущности, а не скрипта который в нее записали.

~Space::
KeyWait, Space
toggleAction := !toggleAction
return

vk31::
#if toggleAction
{
MsgBox скрипт на клавишу 1
}
else
{
send {vk31}??? - что тут прописать, чтобы посылался сигнал нажатия клавиши 1, а не срабатывал скрипт с условием, записанный на эту клавишу?
}
return

10

Re: AHK: Сочетания клавиш с использованием залипания клавиши

~Space Up:: toggleAction := !toggleAction

$vk31::
   if toggleAction {
      MsgBox скрипт на клавишу 1
   }
   else
      send {vk31}
return

11

Re: AHK: Сочетания клавиш с использованием залипания клавиши

Спасибо! Судя по всему значек $ позволяет не менять сущность кнопки. А если нужно обратиться к скрипту, то нужно обращаться к $vk31?

12

Re: AHK: Сочетания клавиш с использованием залипания клавиши

Непонятно, что значит "обратиться к скрипту". По поводу префиксов в частности и хоткеев в общем написано в Справке.

13

Re: AHK: Сочетания клавиш с использованием залипания клавиши

Терь многое прояснилось! Спасибо)