2016-07-12 2 views
0

У меня есть мышь с 4 кнопками, и я стараюсь быстро управлять сложными обширными заклинаниями MMO, сопоставляя комбинацию модифицированных кликов с клавишами 1-8.Как исправить этот скрипт, чтобы нанести клик на цифровые клавиши?

Моя цель:

  • Удерживая (кнопка третья мышь) XButton1 левой кнопкой мыши = 1 ключ.
  • Удерживая кнопку (3-я кнопка мыши) XButton1, щелкните правой кнопкой = 2.
  • Удерживая кнопку (4-я кнопка мыши) XButton2, Left Click = 3 Key.
  • Удерживая кнопку (4-я кнопка мыши) XButton2, щелкните правой кнопкой = 4.
  • Удерживая нажатой кнопку (3-я кнопка мыши) XButton1 и Shift, Left Click = 5 Key.
  • Удерживая кнопку (3-я кнопка мыши) XButton1 и Shift, щелкните правой кнопкой = 6.
  • Удерживая кнопку (3-я кнопка мыши) XButton2 и Shift, Left Click = 7 Key.
  • Удерживая кнопку (3-я кнопка мыши) XButton2 и Shift, щелкните правой кнопкой мыши = 8 клавиш.

XButton1 & LButton:: 
Send 1 
XButton1 & RButton:: 
Send 2 
XButton2 & LButton:: 
Send 3 
XButton2 & RButton:: 
Send 4 
XButton1 & +LButton:: 
Send 5 
XButton1 & +RButton:: 
Send 6 
XButton2 & +LButton:: 
Send 7 
XButton2 & +RButton:: 
Send 8 

Я получаю ошибку о неверном горячих клавиш в строке 9. Я совершенно новое для AutoHotkey, так что это может быть все не так, я не уверен.

+0

ваш код будет безобразничать. Либо поставьте операторы горячих клавиш в строке каждый (woxxom сделал в своем ответе), либо закончите каждую горячую клавишу с помощью 'return'. – Blauhirn

ответ

0
  1. Вы использовали + для обозначения Shift, клавиши на этой строке 9, но combokey нотации позволяет точно два физических ключей к сопряжению. Решение: проверьте состояние ключа Shift вручную с помощью GetKeyState.
  2. Поместите команду горячей клавиши (Send ...) в ту же строку, что и объявление горячей клавиши, в противном случае все приведенные ниже команды будут выполнены до тех пор, пока не будет встречен оператор return или к концу сценария (все команды send в вашем случае).

XButton1 & LButton::SendEither(1, 5) 
XButton1 & RButton::SendEither(2, 6) 
XButton2 & LButton::SendEither(3, 7) 
XButton2 & RButton::SendEither(4, 8) 

SendEither(key, keyShift) { 
    Send % GetKeyState("Shift","P") ? keyShift : key 
}