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

입력 로캘 식별자를 로드하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
KLF_ACTIVATE
0x00000001
Windows 8 이전: 지정된 입력 로캘 식별자가 아직 로드되지 않은 경우 함수는 현재 스레드에 대한 입력 로캘 식별자를 로드하고 활성화합니다.

Windows 8 시작: 지정된 입력 로캘 식별자가 아직 로드되지 않은 경우 함수는 시스템의 입력 로캘 식별자를 로드하고 활성화합니다.

KLF_NOTELLSHELL
0x00000080
Windows 8 이전: 새 입력 로캘 식별자가 로드될 때 ShellProc 후크 프로시저가 HSHELL_LANGUAGE 후크 코드를 수신하지 못하도록 합니다. 이 값은 일반적으로 애플리케이션에서 여러 입력 로캘 식별자를 차례로 로드할 때 사용됩니다. 마지막 입력 로캘 식별자를 제외한 모든 에 이 값을 적용하면 모든 입력 로캘 식별자가 추가될 때까지 셸의 처리가 지연됩니다.

Windows 8 시작: 이 시나리오에서는 전체 시스템에 대해 마지막 입력 로캘 식별자가 설정됩니다.

KLF_REORDER
0x00000008
Windows 8 이전: 지정된 입력 로캘 식별자를 입력 로캘 식별자 목록의 머리로 이동하여 해당 로캘 식별자를 현재 스레드의 활성 로캘 식별자로 만듭니다. 이 값은 KLF_ACTIVATE 제공되지 않은 경우에도 입력 캘 식별자 목록을 다시 정렬합니다.

Windows 8 시작: 지정된 입력 로캘 식별자를 입력 로캘 식별자 목록의 머리로 이동하여 해당 로캘 식별자를 시스템의 활성 로캘 식별자로 만듭니다. 이 값은 KLF_ACTIVATE 제공되지 않은 경우에도 입력 캘 식별자 목록을 다시 정렬합니다.

KLF_REPLACELANG
0x00000010
새 입력 로캘 식별자에 현재 입력 로캘 식별자와 동일한 언어 식별자가 있는 경우 새 입력 로캘 식별자는 현재 입력 로캘 식별자를 해당 언어의 입력 로캘 식별자로 대체합니다. 이 값을 제공하지 않고 입력 로캘 식별자에 동일한 언어 식별자가 있는 경우 현재 입력 로캘 식별자는 대체되지 않으며 함수는 NULL을 반환합니다.
KLF_SUBSTITUTE_OK
0x00000002
지정된 입력 로캘 식별자를 사용자가 선호하는 다른 로캘로 대체합니다. 시스템은 이 플래그 집합으로 시작하며 애플리케이션에서 항상 이 플래그를 사용하는 것이 좋습니다. 대체는 레지스트리 키가 HKEY_CURRENT_USER\Keyboard Layout\Substitutes대체 로 캘을 명시적으로 정의하는 경우에만 발생합니다. 예를 들어 키에 값이 "00010409"인 값 이름 "00000409"이 포함된 경우 미국 레이아웃("00000409")을 로드하면 유나이티드 States-Dvorak 레이아웃("00010409")이 대신 로드됩니다. 시스템은 부팅할 때 KLF_SUBSTITUTE_OK 사용하며, 입력 로캘 식별자를 로드할 때 모든 애플리케이션에서 이 값을 사용하여 사용자의 기본 설정을 선택하는 것이 좋습니다.
KLF_SETFORPROCESS
0x00000100
Windows 8 이전: 이 플래그는 KLF_ACTIVATE 경우에만 유효합니다. 전체 프로세스에 대해 지정된 입력 로캘 식별자를 활성화하고 현재 스레드의 포커스 또는 활성 창에 WM_INPUTLANGCHANGE 메시지를 보냅니다. 일반적으로 LoadKeyboardLayout 은 현재 스레드에 대해서만 입력 로캘 식별자를 활성화합니다.

Windows 8 시작: 이 플래그는 사용되지 않습니다. LoadKeyboardLayout 은 현재 프로세스가 키보드 포커스가 있는 창을 소유하는 경우 항상 전체 시스템에 대한 입력 로캘 식별자를 활성화합니다.

KLF_UNLOADPREVIOUS
이 플래그는 지원되지 않습니다. 대신 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

추가 정보

ActivateKeyboardLayout

개념

GetKeyboardLayoutName

키보드 입력

MAKELANGID

기타 리소스

참조

UnloadKeyboardLayout