1

Тема: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Нужно чтобы при зажатом пробеле, кнопки WASD работали как стандартные стрелки.
Без поддержки модификаторов это легко реализовать в коде:


Space & w::Send, {Up}                                          
Space & d::Send, {Right}               
Space & s::Send, {Down}
Space & a::Send, {Left}
$Space::Send, {Space}

2

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Это Ваша разработка или вопрос?

3

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

#If GetKeyState("Space", "P")
*vk41:: SendInput, {Left}
*vk44:: SendInput, {Right}
*vk53:: SendInput, {Down}
*vk57:: SendInput, {Up}
#If

4 (изменено: artem22, 2015-04-08 08:54:37)

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

ypppu пишет:

Это Ваша разработка или вопрос?

Вопрос.

Irbis, Не работает
К примеру не получается выделить слово зажав ctrl+shift+space+d. При нажатии на пробел начинают печататься пробелы пока не нажата одна из кнопок. Иногда вместо смещения каретки печатаются буквы.
AutoHotkey v1.1.19.03
Windows 8 x64

5 (изменено: Irbis, 2015-04-08 11:12:06)

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Так выделяет. Разумеется, имеется ограничение при использовании клавиши Пробел (как и любой другой) в качестве модификатора - скрипт не может "догадаться", будет ли это просто нажатие "Пробел", или "Пробел+...",  поэтому посыл этой клавиши происходит при отжатии, если она не была задействована в качестве модификатора.

#If GetKeyState("Space", "P")
*vk41:: Send, {Blind}{Left}
*vk44:: Send, {Blind}{Right}
*vk53:: Send, {Blind}{Down}
*vk57:: Send, {Blind}{Up}
#If

*Space Up::
   If (A_PriorHotkey="*Space")
   Send {Space}
*Space::
Return

6

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Можно полностью переназначать клавиши A, S, D, W, но только на время удержания пробела.

7

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Irbis, Второй вариант работает как надо. Спасибо большое
ypppu, Я так и хотел. Была мысль включать командный режим Capslockом но это уже другая история.

8

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Хотя нет, так Space перестанет печатать пробел.

9

Re: AHK: Замена стрелок на пробел + WASD (с поддержкой модификаторов)

Пожалуйста.
Некоторым удобнее работать с удержанием модификатора, "нажал-напечатал-отпустил", кому-то привычней с переключателем. В принципе, можно и совместить.