Múltiplos idiomas de entrada, alternar entre dois

4

Como eu poderia ter três ou mais idiomas de entrada ativos (inglês / russo / chinês), mas alternar entre Alt + Shift somente entre dois deles (Inglês / Russo)?

O Punto Switcher lida com esta tarefa apenas com atalhos personalizados como Caps Lock ou à direita Ctrl .

    
por Michael Sayapin 30.05.2010 / 06:56

2 respostas

1

Eu resolvi esse problema usando o AutoHotKey.

Configure 3 idiomas, uma tecla de atalho para alternar entre eles e outra tecla de atalho para alternar para o idioma que você deseja ignorar. Eu tinha Inglês, Russo e Japonês e queria pular japonês, então eu atribuí Ctrl + Shift + 0 para mudar para JP.

Eu já tinha um script AutoHotKey que me permitia alternar entre os três idiomas usando o Caps. Ficou assim:

CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}

A ideia é mudar o idioma automaticamente quando você mudar para o idioma que deseja pular. É 0x0411 para japonês. Cole o seu na cláusula if no script abaixo, salve-o e execute-o.

Aqui é a lista de idiomas ids, encontre o seu na primeira coluna.

O script só funciona para alternar entre idiomas usando o CapsLock, mas você pode adaptá-lo à opção Alt + Shift. Provavelmente apenas substituindo "CapsLock" por "{Alt Down} {Shift Abaixo} {Shift Up} {Alt Up}".

CapsLock::
Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}

if !LangID := GetKeyboardLanguage(WinActive("A"))
{
    MsgBox, % "GetKeyboardLayout function failed " ErrorLevel
    return
}

if (LangID = 0x0411)
    Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
return

GetKeyboardLanguage(_hWnd=0)
{
    if !_hWnd
        ThreadId=0
    else
        if !ThreadId := DllCall("user32.dll\GetWindowThreadProcessId", "Ptr", _hWnd, "UInt", 0, "UInt")
            return false

    if !KBLayout := DllCall("user32.dll\GetKeyboardLayout", "UInt", ThreadId, "UInt")
        return false

    return KBLayout & 0xFFFF
}
    
por 18.05.2018 / 16:05
-1

Na guia Configurações avançadas de chave (na caixa de diálogo Serviços de texto e idiomas de entrada), você pode alterar o atalho de teclado para cada idioma que você definiu.

Por padrão, a ação "Entre idiomas de entrada" é definida como Alt esquerda + Shift, como você mencionou. As outras ações ("Para o inglês", "Para o russo", etc.) não terão um atalho atribuído até você configurá-lo manualmente para um de seus gostos.

    
por 30.05.2010 / 07:39