다음을 통해 공유


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전달할 특정 입력 로캘 식별자를 결정해야 합니다. 이 경우 로캘에 대한 기본 입력 로캘 식별자를 활성화하라는 요청이 일치하는 첫 번째 로캘 식별자를 활성화합니다. 특정 IME는 GetKeyboardLayout 반환되거나 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

참고 항목

ActivateKeyboardLayout

개념

GetKeyboardLayoutName

키보드 입력

MAKELANGID

기타 리소스

참조

UnloadKeyboardLayout