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에 전달할 특정 입력 로캘 식별자를 결정해야 합니다. 이 경우 로캘에 대한 기본 입력 로캘 식별자를 활성화하라는 요청이 일치하는 첫 번째 로캘 식별자를 활성화합니다. GetKeyboardLayout 또는 LoadKeyboardLayout에서 반환된 명시적 입력 로캘 식별자를 사용하여 특정 IME를 활성화해야 합니다.
Windows 8 이전: 이 함수는 현재 프로세스 또는 스레드의 레이아웃에만 영향을 줍니다.
Windows 8 시작: 이 함수는 전체 시스템의 레이아웃에 영향을 줍니다.
참고
winuser.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 LoadKeyboardLayout을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
추가 정보
개념
기타 리소스
참조