serzh82saratov, работает!
Но я хотел запустить свой переводчик-часть кода:
If DllCall("GetKeyboardLayout", "Int", DllCall("GetWindowThreadProcessId", "Int", WinExist("A"), "Int", "0")) = 0x4190419
PostMessage, 0x50, 0, 0x4090409,, A ;английский
Else
PostMessage, 0x50, 0, 0x4190419,, A ;русский
по вашему способу:
If DllCall("GetKeyboardLayout", "Int", DllCall("GetWindowThreadProcessId", "Int", WinExist("A"), "Int", "0"))=0x4190419
{
ControlGetFocus, CtrlFocus, % "ahk_id" WinExist("A")
PostMessage, 0x50, 0, 0x4090409, %CtrlFocus% ;английский
}
else
{
ControlGetFocus, CtrlFocus, % "ahk_id" WinExist("A")
PostMessage, 0x50, 0, 0x4090419, %CtrlFocus% ;русский
}
Не работает. C русского на английский меняет раскладку, а наоборот не хочет.
DllCall язык определяет:
If DllCall("GetKeyboardLayout", "Int", DllCall("GetWindowThreadProcessId", "Int", WinExist("A"), "Int", "0")) = 0x4190419
MsgBox русский
Else
MsgBox английский
Может подскажете что я не так делаю?