Windows에서 특정 언어로 가상 키보드를 열 수 있나요?

Windows에서 특정 언어로 가상 키보드를 열 수 있나요?

내 언어 설정이 영어 또는 독일어인 경우 러시아어로 가상 Windows 키보드를 열 수 있는 방법이 있습니까?

현재 설정과 다른 언어로 된 스크립트나 기타 단축키를 사용하여 가상 키보드를 열 수 있나요? 에 따라이 정보는 여기(powershell, cmd)를 사용할 수 있지만 osk언어를 설정할 기회가 없습니다.


불편한 해결책을 찾았습니다. 에 따르면https://superuser.com/a/922767/72397러시아어 로케일로 다른 사용자를 사용할 수 있습니다.

그런 다음 이 사용자를 사용하여 시작할 수 있습니다 osk. 왜냐하면 740: The requested operation requires elevation이 해결 방법을 사용하고 먼저 다른 해결 방법을 실행해야 하기 때문입니다 cmd(참조https://superuser.com/a/1134561/72397).

따라서 runas /profile /savecred /user:"RUSSIAN USER" "cmd /c start osk"해당 특정 사용자의 로캘로 osk를 시작합니다.

편집 2: 몇 가지 테스트를 거친 후 다른 사용자로 실행 OSK하더라도 현재 로케일과 다를 수 없다는 것을 깨달았습니다 . OSK창의 아무 곳이나 클릭하자마자 OSK키보드 레이아웃이 내 로케일로 변경됩니다.

OSK독일 키보드 레이아웃으로 작업하는 동안 러시아어로 하나를 실행하는 것이 아이디어였습니다 .

따라서 가장 좋은 솔루션은 솔루션을 사용하는 것으로 보이며 AutohotKey신속하게 러시아어로 변경한 다음 다시 돌아옵니다.


SO와 관련된 비공개 발언https://stackoverflow.com/q/74829525/356726

답변1

타사 도구를 사용해야 합니다.

무료로 이용하실 수 있습니다오토핫키.

다음 예제 스크립트는 시스템 언어를 지정된 설치된 언어로 전환하고 화면 키보드를 시작합니다. 여기서는 F11언어를 미국-영어로 설정하고 F12프랑스어-표준으로 설정합니다. 더 많은 언어 코드는 Microsoft 문서에서 찾을 수 있습니다. 언어 코드.

F11::SetDefaultKeyboard(0x0409) ; english-US
F12::SetDefaultKeyboard(0x040c) ; french

SetDefaultKeyboard(LocaleID){
    Global
    SPI_SETDEFAULTINPUTLANG := 0x005A
    SPIF_SENDWININICHANGE := 2
    Lan := DllCall("LoadKeyboardLayout", "Str", Format("{:08x}", LocaleID), "Int", 0)
    VarSetCapacity(Lan%LocaleID%, 4, 0)
    NumPut(LocaleID, Lan%LocaleID%)
    DllCall("SystemParametersInfo", "UInt", SPI_SETDEFAULTINPUTLANG, "UInt", 0, "UPtr", &Lan%LocaleID%, "UInt", SPIF_SENDWININICHANGE)
    WinGet, windows, List
    Loop %windows% {
        PostMessage 0x50, 0, %Lan%, , % "ahk_id " windows%A_Index%
    }
    Sleep, 100
    Run, C:\Windows\System32\osk.exe
}

AutoHotKey 설치 후, 위의 텍스트를 .ahk파일에 넣고 더블클릭하여 테스트해 보세요. 트레이바에 있는 녹색 H 아이콘을 마우스 오른쪽 버튼으로 클릭하고 종료를 선택하여 스크립트를 중지할 수 있습니다. 로그인 시 실행되도록 하려면 시작 그룹의 에 배치하십시오
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

유용한 AutoHotkey 문서:

관련 정보