2014-11-07 7 views
1

Я использую два разных языка. Я хотел бы переключить Capslock и LShift, но только для одного из них.Autohotkey Не удается получить «A_Language» для работы

В основном я хочу, чтобы это сделать:

if (A_Language = "0409") 
{ 
    Capslock::LShift 
    LShift::Capslock 
} 
// else behave like normal 

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

ответ

1

Чтобы создать контекстно-зависимые горячие клавиши, вам необходимо использовать #if.

Вы можете прочитать здесь: http://ahkscript.org/docs/commands/_If.htm

Кроме того, убедитесь, что вы работаете в latest version of AHK, в противном случае он может не работать.

#if (A_Language = "0409") 
    Capslock::LShift 
    LShift::Capslock 
#if 
+0

Я думаю, что ваш код работает, но это не решило мою проблему. Кажется, код языка не изменяется при использовании Alt + Shift. Я думаю, это потому, что он не меняет язык по умолчанию. Так или иначе, я придумал другую идею, которая работает для меня. Теперь я использую Capslock :: Shift, и LShift по-прежнему действует как сдвиг. Но в сочетании они действуют как Capslock. – Nevon

+0

Capslock :: Сдвиг состояние = "" + Capslock :: GetKeyState, состояние, CapsLock, T , если (состояние = "D") SetCapslockState Выкл остальное SetCapslockState На возвращения – Nevon

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