2013-06-01 3 views
1

Я хочу изменить использование Ctrl в Spacebar для трех команд в игре, но не для всех, потому что я не могу использовать пространство для общения. Обычными командами являются Ctrl + q, Ctrl + w, Ctrl + e, Ctrl + r и Control + RButton (правая кнопка мыши). Прямо сейчас я использую Space :: Ctrl, однако я пробовал разные решения без результата.Комбинации клавиш AutoHotKey (remap) для ключевых модификаторов

[EDIT /]
@MCL Ok. Я посмотрел на тему форума, которую вы опубликовали, и попробовал код, ниже которого была обработана сортировка. Он отправил ключи, как я хотел, но каждый ярлык вызывал все ярлыки, которые следовали за ним. Например, пространство + e запускает пространство + e, пространство + r и пространство.

Кроме того, пробел все еще не работает. Я добавил Space :: Space позже, и я могу получить текстовое пространство только с помощью ярлыков Space + (q, w, e или r).

SendMode Input 
SetKeyDelay ,0,30 

#IfWinActive ahk_class RiotWindowClass 

Space & q:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {q down} 
      Sleep 30 
      Send {q up} 
      Sleep 30 
      Send {Ctrl up} 

Space & w:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {w down} 
      Sleep 30 
      Send {w up} 
      Sleep 30 
      Send {Ctrl up} 

Space & e:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {e down} 
      Sleep 30 
      Send {e up} 
      Sleep 30 
      Send {Ctrl up} 

Space & r:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {r down} 
      Sleep 30 
      Send {r up} 
      Sleep 30 
      Send {Ctrl up} 

Space & RButton:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {RButton down} 
      Sleep 30 
      Send {RButton up} 
      Sleep 30 
      Send {Ctrl up} 

Space::Space 

#IfWinActive 

[/ EDIT]

+0

Вы уверены, что AHK отправляет ваши ключи? В противном случае игра может быть вашей проблемой, блокируя симулированные нажатия клавиш (возможно, выборочно). Кроме того, чтобы сохранить исходную функциональность пространства, просто добавьте 'SPACE :: Send, {SPACE}' к вашему коду. Методологически выясните проблему: 1. Зарегистрирует ли AHK ваш ключ? 2. Предоставляет ли AHK ваш ярлык в целом? (Попробуйте это за пределами вашей игры первым!) 3. Получает ли ваше окно AHK симулированные нажатия клавиш? – MCL

+0

Спасибо MCL за ваше время. || Я протестировал следующее только сейчас: Space & q :: Отправить текст - он отправил его в Notepad ++ || Space & q :: Send! Q - Я установил Ctrl + q в качестве ярлыка для Launchy и успешно открыл его. Так что команда Send не работает в игре. Однако Space :: Ctrl работает. Я нажимаю Space + q с этим переназначением, и игра обнаруживает его как Ctrl + q. –

+0

Просто догадайтесь, но попробуйте поиграть со следующими директивами: '# InstallKeybdHook' и' # UseHook' в разных комбинациях (просто поместите их в начало вашего скрипта). Кроме того, узнайте, регистрирует ли AHK ваш keypress (лучше всего, записав что-то в файл). – MCL

ответ

0

Найдено его. Мне нужно было добавить возврат.

#NoEnv 
SendMode Input 
#InstallKeybdHook 
#UseHook 

#IfWinActive ahk_class RiotWindowClass 

Space & q:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {q down} 
      Sleep 30 
      Send {q up} 
      Sleep 30 
      Send {Ctrl up} 
      return 

Space & w:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {w down} 
      Sleep 30 
      Send {w up} 
      Sleep 30 
      Send {Ctrl up} 
      return 

Space & e:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {e down} 
      Sleep 30 
      Send {e up} 
      Sleep 30 
      Send {Ctrl up} 
      return 

Space & r:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {r down} 
      Sleep 30 
      Send {r up} 
      Sleep 30 
      Send {Ctrl up} 
      return 

Space & RButton:: 
      Send {Ctrl down} 
      Sleep 30 
      Send {RButton down} 
      Sleep 30 
      Send {RButton up} 
      Sleep 30 
      Send {Ctrl up} 
      return 

Space:: 
      Send {Space} 
      return 

#IfWinActive 
+0

Хорошо ... Просто замечает, что есть одна вещь, которая все еще не работает. Пространство будет работать только как текст и не будет работать как ярлык для центральной камеры на вашем персонаже. GRRRR –

+0

Во-первых, пожалуйста, не отвечайте на вопросы или вопросы конкретному пользователю. Каждый из них, возможно, внесет свой вклад в вашу тему. Во-вторых, вместо сна я использовал бы SetKeyDelay, который, с одной стороны, делает ваш код короче и читабельнее, а с другой стороны, также позволяет вам изменять PressDuration. Возможно, игра с SetKeyDelay может решить вашу проблему SPACE. – MCL

+0

Я попробовал SetKeyDelay, и он не сработает. Без функций^q или {Control down} q {Control up} или Space camera. –

Смежные вопросы