2015-09-30 10 views
1

У меня есть группа из RWin+X => Y сопоставлений. Я хотел бы, чтобы RAlt отображался на RWin так, чтобы RWin+X == RAlt+X. Например:AHK рекурсивная карта? (Карта RAlt в RWin, которая отображается на другие клавиши)

; RWin+J => Left 
>#j::SendInput,{LEFT} 

Который работает отлично, я могу держать вниз RWin и нажмите j и он будет продолжать посылать Left. Теперь давайте добавим перед тем, отображающим следующим:

RAlt::RWin 

Если я держу RAlt затем нажмите j, она посылала в Left правильно, но если я продолжу проведение RAlt и нажмите j снова, она направит j и не Left , Я должен был бы выпустить RAlt и снова нажать его.

Есть ли способ исправить это?

+0

Я не думаю, что это возможно. Почему вы не можете назначить одно и то же действие для обоих ключей? – wOxxOm

+0

Ну, у меня были некоторые проблемы с отображением 'RAlt', например, у меня есть эта карта'> # ^! J :: SendInput, ^! {LEFT} '- которая отображает' RWin + Ctrl + Alt + j' на 'Ctrl + Alt + Left' - проблема. Если я использую '>!' Вместо '> #' ahk запутался, потому что теперь задействованы два Alts. Я попытался указать, что я хочу ' vexe

+0

Может ли быть, что ваша клавиатура имеет AltGr-ключ вместо клавиши Alt-Alt? http://ahkscript.org/docs/Hotkeys.htm#Symbols – user3419297

ответ

1

Это то, что я придумал, исходя из вашей проблемы. Это решение для работы:

#J:: 
If (GetKeyState("RAlt", "P") Or GetKeyState("RWin", "P")) { 
    SendInput,{LEFT} 
} 
Return 

RAlt:: 
While GetKeyState("RAlt", "P") { 
     ; Add any Key in {Key} format followed by Period . that you want to act as an EndKey. 
     Input, Key, L1 M T1, {space}.{esc}.{shift}.{enter} 
         .{tab}.{backspace}.{alt}.{home} 
         .{delete}.{pgup}.{pgdn}.{end} 
         .{up}.{down}.{left}.{right} 
      If (Key <> "") { 
       SendInput, {RWin down}{%Key%}{Rwin Up} 
       } 
      If InStr(ErrorLevel, "EndKey:") 
       Send % "{" . StrReplace(ErrorLevel, "EndKey:") . "}" 
    } 
Return 
+0

'Ошибка: слишком мало параметров передано функции. В частности: StrReplace (ErrorLevel, «EndKey:»). "}" '' – vexe

+0

Используете ли вы последнюю версию AutoHotkey? Хорошо работает в моей системе. – errorseven