1

Тема: AHK:Смена языка на Японский кнопкой CapsLock

По задумке язык должен переключаться на Японский нажатием CapsLock.А alt+shift переключать en-ru.Ничего не работает...Может кто-нибудь исправить мой говнокод?

ru := DllCall("LoadKeyboardLayout", "Str", "0x4190419", "Int", 1)
en := DllCall("LoadKeyboardLayout", "Str", "0x4090409", "Int", 1)
jp := DllCall("LoadKeyboardLayout", "Str", "0x4110411", "Int", 1)

CapsLock::
{
    PostMessage 0x50, 0, %jp%,, A
}

!~Shift UP::
{
    if GetKeyState("Alt") {
	    w := DllCall("GetForegroundWindow")
		pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
		l :=DllCall("GetKeyboardLayout", "Uint", pid)
		if (l = en) {
		        PostMessage 0x50, 0, %ru%,, A
		} else {
		    PostMessage 0x50, 0, %en%,, A
		}
		Exit
    }
}

~LAlt UP::
{
    if GetKeyState("Shift") {
        w := DllCall("GetForegroundWindow")
		pid := DllCall("GetWindowThreadProcessId", "Uint", w, "Ptr", 0)
		l :=DllCall("GetKeyboardLayout", "UInt", pid)
		if (l = en) {
		    PostMessage 0x50, 0, %ru%,, A
		} else {
            PostMessage 0x50, 0, %en%,, A	
		}
		Exit
	}
}