728x90
GetKeyboardLayout함수는 특정 Thread에서 사용중인 Keyboard의 입력언어및 배열값을 확인합니다.
Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout As Integer) As Integer
▶VB.NET 선언
GetKeyboardLayout(0)
▶VB.NET 호출
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int GetKeyboardLayout(int dwLayout);
▶C# 선언
GetKeyboardLayout(0);
▶C# 호출
GetKeyboardLayout함수는 Thread를 구분하는 값을 인수로 건네주며 이때 0을 인수로 전달하면 현재의 Thread를 의미하게 됩니다. 또한 실제 Program에서 GetKeyboardLayout함수를 호출하면 10진수 형태의 숫자로된 값을 반환하는데 이 값을 그대로 인식하기는 어려우므로 다음과 같이 16진수로 변환합니다.
Hex(Val(GetKeyboardLayout(0)))
▶VB.NET
Convert.ToString(GetKeyboardLayout(0), 16);
▶C#
GetKeyboardLayout함수반환값을16진수로 변환하면 전체 8자리 형태의 값이 생성됩니다.
X00000000 |
X는 문자를 의미합니다.
위 값에서 가장 오른쪽 부터 4자리는 현재 키보드의 입력언어를, 이후 4자리는 키보드 Layout을 나타냅니다. 다음은 결과값에 따른 국가별 언어 Layout을 정리한 표입니다.(일부)
값 | 국가 | Keyboard Layout |
E0010404 | 중국 | 번체(Phonetic) |
E0010411 | 일본 | Microsoft Soft IME - 2002 |
E0010412 | 한국 | Microsoft Soft IME - 2000 |
E0010804 | 중국 | 간체(QuanPin) |
E0020412 | - | Microsoft Soft IME - 2003 |
728x90
'.NET > Windows API for .NET' 카테고리의 다른 글
DestroyCaret - 생성된 모든 Caret의 삭제 (0) | 2019.08.09 |
---|---|
LoadCursor - Windows Cursor Load (0) | 2019.08.09 |
GetLocaleInfo - System의 국가별지역 정보 (0) | 2019.08.09 |
AddFontResource - Font(글꼴) 추가하기 (0) | 2019.08.09 |
GetTextFace - 현재 Windows화면의 글꼴 확인 (0) | 2019.08.09 |