LoadKeyboardLayoutA 함수(winuser.h)
새 입력 로캘 식별자(이전의 키보드 레이아웃)를 시스템에 로드합니다.
Windows 8 이전: 여러 입력 로캘 식별자를 한 번에 로드할 수 있지만 프로세스당 하나만 한 번에 활성화됩니다. 여러 입력 로캘 식별자를 로드하면 둘 사이를 빠르게 전환할 수 있습니다.
Windows 8에서 시작: 입력 로캘 식별자가 전체 시스템에 대해 로드됩니다. 현재 프로세스에서 키보드 포커스가 있는 창을 소유하지 않는 경우에는 이 함수가 적용되지 않습니다.
통사론
HKL LoadKeyboardLayoutA(
[in] LPCSTR pwszKLID,
[in] UINT Flags
);
매개 변수
[in] pwszKLID
형식: LPCTSTR
로드할 입력 로캘 식별자의 이름입니다. 이 이름은 언어 식별자(소문자) 및 디바이스 식별자(상위 단어)의 16진수 값으로 구성된 문자열입니다. 예를 들어 미국 영어에는 0x0409 언어 식별자가 있으므로 기본 미국 영어 레이아웃의 이름은 "00000409"입니다. 미국 영어 레이아웃(예: Dvorak 레이아웃)의 변형 이름은 "00010409", "00020409" 등입니다.
Windows와 함께 제공되는 입력 레이아웃 목록은 키보드 식별자 및 Windows대한 입력 메서드 편집기를 참조하세요.
[in] Flags
형식: UINT
입력 로캘 식별자를 로드하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
값 | 의미 |
---|---|
|
Windows 8 이전: 지정된 입력 로캘 식별자가 아직 로드되지 않은 경우 함수는 현재 스레드에 대한 입력 로캘 식별자를 로드하고 활성화합니다.
Windows 8에서 시작: 지정된 입력 로캘 식별자가 아직 로드되지 않은 경우 함수는 시스템에 대한 입력 로캘 식별자를 로드하고 활성화합니다. |
|
Windows 8 이전: 새 입력 로캘 식별자가 로드될 때 ShellProc 후크 프로시저가 HSHELL_LANGUAGE 후크 코드를 수신하지 못하도록 방지합니다. 이 값은 일반적으로 애플리케이션에서 여러 입력 로캘 식별자를 하나씩 로드할 때 사용됩니다. 마지막 입력 로캘 식별자를 제외한 모든 입력 로캘 식별자에 이 값을 적용하면 모든 입력 로캘 식별자가 추가될 때까지 셸의 처리가 지연됩니다.
Windows 8부터: 이 시나리오에서는 전체 시스템에 대해 마지막 입력 로캘 식별자가 설정됩니다. |
|
Windows 8 이전: 지정된 입력 로캘 식별자를 입력 로캘 식별자 목록의 머리 위로 이동하여 해당 로캘 식별자를 현재 스레드의 활성 로캘 식별자로 만듭니다. 이 값은 KLF_ACTIVATE 제공되지 않은 경우에도 입력 로캘 식별자 목록을 다시 정렬합니다.
Windows 8부터 시작: 지정된 입력 로캘 식별자를 입력 로캘 식별자 목록의 머리글로 이동하여 해당 로캘 식별자를 시스템의 활성 로캘 식별자로 만듭니다. 이 값은 KLF_ACTIVATE 제공되지 않은 경우에도 입력 로캘 식별자 목록을 다시 정렬합니다. |
|
새 입력 로캘 식별자에 현재 입력 로캘 식별자와 동일한 언어 식별자가 있는 경우 새 입력 로캘 식별자는 현재 입력 로캘 식별자를 해당 언어의 입력 로캘 식별자로 바꿉니다. 이 값이 제공되지 않고 입력 로캘 식별자에 동일한 언어 식별자가 있는 경우 현재 입력 로캘 식별자는 대체되지 않으며 함수는 NULL |
|
지정된 입력 로캘 식별자를 사용자가 선호하는 다른 로캘로 대체합니다. 시스템은 이 플래그 집합으로 시작하며 애플리케이션에서 항상 이 플래그를 사용하는 것이 좋습니다. 대체는 레지스트리 키가 대체 로캘을 명시적으로 정의할 HKEY_CURRENT_USER\Keyboard Layout\Substitutes 경우에만 발생합니다. 예를 들어 키에 값 이름이 "00010409"인 "00000409" 값이 포함된 경우 미국 레이아웃("00000409")을 로드하면 유나이티드 States-Dvorak 레이아웃("00010409")이 로드됩니다. 시스템은 부팅할 때 KLF_SUBSTITUTE_OK 사용하며, 입력 로캘 식별자를 로드할 때 모든 애플리케이션에서 이 값을 사용하여 사용자의 기본 설정을 선택하는 것이 좋습니다. |
|
Windows 8 이전: 이 플래그는 KLF_ACTIVATE경우에만 유효합니다. 전체 프로세스에 대해 지정된 입력 로캘 식별자를 활성화하고 WM_INPUTLANGCHANGE 메시지를 현재 스레드의 포커스 또는 활성 창으로 보냅니다. 일반적으로 LoadKeyboardLayout 현재 스레드에 대해서만 입력 로캘 식별자를 활성화합니다.
Windows 8에서 시작: 이 플래그는 사용되지 않습니다. LoadKeyboardLayout 현재 프로세스에서 키보드 포커스가 있는 창을 소유하는 경우 항상 전체 시스템에 대한 입력 로캘 식별자를 활성화합니다. |
|
이 플래그는 지원되지 않습니다. 대신 UnloadKeyboardLayout 함수를 사용합니다. |
반환 값
형식: HKL
함수가 성공하면 반환 값은 pwszKLID지정된 이름에 해당하는 입력 로캘 식별자입니다. 일치하는 로캘을 사용할 수 없는 경우 반환 값은 시스템의 기본 언어입니다.
함수가 실패하면 반환 값은 NULL입니다. 이 문제는 레이아웃 라이브러리가 애플리케이션 디렉터리에서 로드되는 경우에 발생할 수 있습니다.
확장 오류 정보를 얻으려면 GetLastError호출합니다.
발언
입력 로캘 식별자는 음성 텍스트 변환기, IME(입력 메서드 편집기) 또는 다른 형식의 입력을 포함할 수도 있으므로 키보드 레이아웃보다 더 광범위한 개념입니다.
애플리케이션은 일반적으로 언어에 대한 기본 입력 로캘 식별자 또는 IME를 로드할 수 있으며, 언어 식별자의 문자열 버전만 지정하여 로드할 수 있습니다. 애플리케이션이 특정 로캘 또는 IME를 로드하려는 경우 레지스트리를 읽어 LoadKeyboardLayout
Windows 8 이전: 이 함수는 현재 프로세스 또는 스레드의 레이아웃에만 영향을 줍니다.
Windows 8에서 시작: 이 함수는 전체 시스템의 레이아웃에 영향을 줍니다.
메모
winuser.h 헤더는 LOADKeyboardLayout을 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
참고 항목
개념
GetKeyboardLayoutName
키보드 입력
MAKELANGID
기타 리소스
참조
UnloadKeyboardLayout