언어 전환 단축키에서 거의 사용되지 않는 언어를 제거하는 방법은 무엇입니까?

언어 전환 단축키에서 거의 사용되지 않는 언어를 제거하는 방법은 무엇입니까?

저는 다음 3개 언어를 입력합니다.

언어 A - 55%의 경우

언어 B - 40%

언어 C - 5%의 경우

일반적인 해결책은 세 가지 언어를 모두 설치하고 Ctrl/Alt-Shift를 사용하는 것입니다. 그러나 A와 B 사이를 왔다 갔다 할 때마다 언어 C를 전환해야 하는 것은 상당히 성가신 일입니다.

Ctrl/Alt-Shift를 누를 때 Windows가 C 언어로 전환되는 것을 방지할 수 있는 일종의 솔루션이 있습니까? 그런 다음 언어 C로 전환하기 위한 별도의 단축키를 추가할 수 있습니다.

저는 윈도우 7 SP1을 사용하고 있습니다.

감사합니다.

답변1

당신은 만들 수 있습니다오토잇키보드 언어를 전환할 때 언어 "C"를 "건너뛰기" 위한 스크립트입니다.

설치 후오토잇그리고편집자. 데스크탑->새로 만들기->Autoit 스크립트를 마우스 오른쪽 버튼으로 클릭합니다. 생성된 파일을 마우스 오른쪽 버튼으로 클릭 -> 편집합니다. 이제 ScITE 창이 표시되고 "여기에 코드를 추가하세요" 줄 뒤에 다음 코드를 추가하세요.

#include <WinAPISys.au3>
ClipPut(_WinAPI_GetKeyboardLayout(ControlGetHandle("[ACTIVE]","","")))

현재 언어가 "C"가 될 때까지 SHIFT+ALT(또는 키보드 언어 전환을 위해 등록된 단축키)를 누릅니다(키보드 언어 이름이 작업 표시줄에 표시되지 않으면 Win+R ->> CTFMON.EXE ->> Enter를 누름). ScITE 창에서 도구->이동을 누르세요. 이제 클립보드 언어 "C" 코드에 있습니다. 붙여넣기(CTRL+V)하여 어딘가에 저장하세요.

이전 코드를 제거하고 다음을 붙여넣습니다.

#include <WindowsConstants.au3>
#include <WinAPISys.au3>
#include <문자열.au3>
#NoTrayIcon
$skiplang="0x04090409" ;언어를 전환할 때 이 언어를 건너뜁니다.
$list=_WinAPI_GetKeyboardLayoutList( )

$fakeforwardlang=""
IsArray($list)이면
    $list[0]<3이면 종료합니다. 너 감자야
    $i = 1의 경우 $list[0]
        if $list[$i]=$skiplang Then;다음 언어 찾기
            $i=$list[0]이면
                $fakeforwardlang=$list[1]
                종료 루프
            종료
            $fakeforwardlang=$list[$i+1]
            종료 루프
        종료
    다음
또 다른
    출구
종료
$fakeforwardlang=StringMid($fakeforwardlang,1,6)
동안 1
$handle=ControlGetHandle("[활성]","","")
getcurkb($handle)=$skiplang이면 _WinAPI_SetKeyboardLayout($handle, $fakeforwardlang)
수면(100)
향하게 하다
기능 getcurkb($handle)
    _WinAPI_GetKeyboardLayout($handle) 반환
EndFunc

다음 단계에서는 저장된 언어 "C" 코드를 다음으로 바꿔야 합니다.0x04090409이 스크립트(5줄)에서.

그런 다음 SciTE 창에서 도구->빌드를 누르세요. 이제 Autoit 스크립트가 있던 동일한 디렉토리에서 실행 파일을 얻을 수 있습니다. 이 실행 파일(.exe)을 실행하십시오.

스크립트를 중지하려면 프로세스 종료를 위해 작업 관리자를 사용해야 합니다.

3가지 키보드 언어가 있고 UAC가 비활성화된 Windows 7에서 작동합니다.

업데이트:

나는 망쳤다. _WinAPI_SetKeyboardLayout Forward는 가끔씩만 작동합니다. {down} 키를 눌렀을 때 표준 전송에는 매우 버그가 있습니다. 외부 기능을 기반으로 한 현재 솔루션입니다. 하지만 이 기능의 한 가지 문제는 다음 키보드 언어로 전환하려면 Shift와 Alt를 누르지 않아야 한다는 것입니다. 나중에 코드를 다시 확인해야 합니다.

업데이트2:

_WinAPI_SetKeyboardLayout으로 돌아가지만 가짜 전달을 사용합니다. 지금은 어떤 문제도 발견할 수 없습니다.

답변2

나는 같은 상황에 처해 있으며 언어마다 다른 단축키를 설정했습니다. 예:

  • Ctrl+ Shift+ 1언어 A의 경우,
  • Ctrl+ Shift+ 2언어 B의 경우,
  • Ctrl+ Shift+ 3언어 C의 경우

이를 통해 단 한 번의 키 입력으로 원하는 언어로 전환할 수 있습니다. 이는 제어판\모든 제어판 항목\언어\고급 설정\입력 도구 모음 단축키 변경에서 설정할 수 있습니다(Windows 10의 경로이며 Windows 7에서는 다를 수 있지만 비슷한 위치입니다). 대화상자는 다음과 같습니다.키 순서 변경

관련 정보