키보드 입력
이 섹션에서는 시스템에서 키보드 입력을 생성하는 방법과 애플리케이션이 해당 입력을 수신하고 처리하는 방법을 설명합니다.
이 섹션에서
이름 | 묘사 |
---|---|
키보드 입력 대한 | 키보드 입력에 대해 설명합니다. |
키보드 입력 사용하여 | 키보드 입력과 관련된 작업을 다룹니다. |
키보드 입력 참조 | API 참조를 포함합니다. |
함수
이름 | 묘사 |
---|---|
ActivateKeyboardLayout | 호출 스레드 또는 현재 프로세스에 대한 입력 로캘 식별자(이전의 키보드 레이아웃 핸들)를 설정합니다. 입력 로캘 식별자는 키보드의 실제 레이아웃뿐만 아니라 로캘을 지정합니다. |
blockInput | 키보드 및 마우스 입력 이벤트가 애플리케이션에 도달하지 못하도록 차단합니다. |
EnableWindow | 지정한 창이나 컨트롤에 대한 마우스 및 키보드 입력을 사용하거나 사용하지 않도록 설정합니다. 입력을 사용하지 않도록 설정하면 창에 마우스 클릭 및 키 누름과 같은 입력이 수신되지 않습니다. 입력을 사용하도록 설정하면 창에서 모든 입력을 받습니다. |
GetActiveWindow | 호출 스레드의 메시지 큐에 연결된 활성 창에 대한 창 핸들을 검색합니다. |
GetAsyncKeyState | 함수가 호출될 때 키가 작동 또는 중단되었는지 여부와 getAsyncKeyState이전 호출 후 키를 누른 것인지 여부를 결정합니다. |
GetFocus | 창이 호출 스레드의 메시지 큐에 연결된 경우 키보드 포커스가 있는 창에 대한 핸들을 검색합니다. |
GetKeyboardLayout | 지정된 스레드에 대한 활성 입력 로캘 식별자(이전의 키보드 레이아웃)를 검색합니다.
idThread 매개 변수가 0이면 활성 스레드에 대한 입력 로캘 식별자가 반환됩니다. |
GetKeyboardLayoutList | 시스템의 현재 입력 로캘 집합에 해당하는 입력 로캘 식별자(이전의 키보드 레이아웃 핸들)를 검색합니다. 이 함수는 식별자를 지정된 버퍼에 복사합니다. |
GetKeyboardLayoutName | 활성 입력 로캘 식별자(이전의 키보드 레이아웃)의 이름을 검색합니다. |
GetKeyboardState | 256개 가상 키의 상태를 지정된 버퍼에 복사합니다. |
GetKeyNameText | 키의 이름을 나타내는 문자열을 검색합니다. |
GetKeyState | 지정된 가상 키의 상태를 검색합니다. 상태는 키가 위쪽, 아래쪽 또는 토글(키를 누를 때마다 번갈아 켜기, 해제) 여부를 지정합니다. |
GetLastInputInfo | 마지막 입력 이벤트의 시간을 검색합니다. |
IsWindowEnabled | 마우스 및 키보드 입력에 대해 지정된 창을 사용할 수 있는지 여부를 결정합니다. |
LoadKeyboardLayout | 새 입력 로캘 식별자(이전의 키보드 레이아웃)를 시스템에 로드합니다. 여러 입력 로캘 식별자를 한 번에 로드할 수 있지만 프로세스당 하나만 한 번에 활성화됩니다. 여러 입력 로캘 식별자를 로드하면 둘 사이를 빠르게 전환할 수 있습니다. |
MapVirtualKey | 가상 키 코드를 검색 코드 또는 문자 값으로 변환(매핑)하거나 스캔 코드를 가상 키 코드로 변환합니다. 지정된 코드를 변환하는 데 사용할 키보드 레이아웃에 대한 핸들을 지정하려면 MapVirtualKeyEx 함수를 사용합니다. |
MapVirtualKeyEx | 가상 키 코드를 검색 코드 또는 문자 값에 매핑하거나 스캔 코드를 가상 키 코드로 변환합니다. 이 함수는 입력 언어 및 입력 로캘 식별자를 사용하여 코드를 번역합니다. |
OemKeyScan | OEMASCII 코드 0부터 0x0FF OEM 검사 코드 및 시프트 상태에 매핑합니다. 이 함수는 프로그램이 키보드 입력을 시뮬레이션하여 OEM 텍스트를 다른 프로그램으로 보낼 수 있도록 하는 정보를 제공합니다. |
RegisterHotKey | 시스템 전체 핫 키를 정의합니다. |
SendInput | 키 입력, 마우스 동작 및 단추 클릭을 합성합니다. |
SetActiveWindow | 창을 활성화합니다. 창은 호출 스레드의 메시지 큐에 연결되어야 합니다. |
SetFocus | 키보드 포커스를 지정된 창으로 설정합니다. 창은 호출 스레드의 메시지 큐에 연결되어야 합니다. |
SetKeyboardState | 키보드 키 상태의 256 바이트 배열을 호출 스레드의 키보드 입력 상태 테이블에 복사합니다. 이 테이블은 GetKeyboardState 및 GetKeyState 함수에서 액세스하는 것과 동일한 테이블입니다. 이 테이블을 변경해도 다른 스레드에 대한 키보드 입력에는 영향을 주지 않습니다. |
ToAscii | 지정된 가상 키 코드 및 키보드 상태를 해당 문자 또는 문자로 변환합니다. 이 함수는 입력 언어와 키보드 레이아웃 핸들로 식별되는 실제 키보드 레이아웃을 사용하여 코드를 변환합니다. 지정된 코드를 변환하는 데 사용할 키보드 레이아웃에 대한 핸들을 지정하려면 ToAsciiEx 함수를 사용합니다. |
toAsciiEx | 지정된 가상 키 코드 및 키보드 상태를 해당 문자 또는 문자로 변환합니다. 이 함수는 입력 언어 및 입력 로캘 식별자에 의해 식별된 실제 키보드 레이아웃을 사용하여 코드를 변환합니다. |
ToUnicode | 지정된 가상 키 코드 및 키보드 상태를 해당 유니코드 문자 또는 문자로 변환합니다. 지정된 코드를 변환하는 데 사용할 키보드 레이아웃에 대한 핸들을 지정하려면 ToUnicodeEx 함수를 사용합니다. |
toUnicodeEx | 지정된 가상 키 코드 및 키보드 상태를 해당 유니코드 문자 또는 문자로 변환합니다. |
UnloadKeyboardLayout | 입력 로캘 식별자(이전의 키보드 레이아웃이라고 함)를 언로드합니다. |
UnregisterHotKey | 호출 스레드에서 이전에 등록한 핫 키를 해제합니다. |
VkKeyScanEx | 문자를 해당 가상 키 코드 및 시프트 상태로 변환합니다. 이 함수는 입력 언어 및 입력 로캘 식별자로 식별된 실제 키보드 레이아웃을 사용하여 문자를 변환합니다. |
다음 함수는 사용되지 않습니다.
기능 | 묘사 |
---|---|
GetKBCodePage | 현재 코드 페이지를 검색합니다. |
keybd_event | 키 입력을 합성합니다. 시스템은 이러한 합성 키 입력을 사용하여 WM_KEYUP 또는 WM_KEYDOWN 메시지를 생성할 수 있습니다. 키보드 드라이버의 인터럽트 처리기는 keybd_event 함수를 호출합니다. |
VkKeyScan | 문자를 현재 키보드의 해당 가상 키 코드 및 시프트 상태로 변환합니다. |
메시지
이름 | 묘사 |
---|---|
WM_GETHOTKEY | 창과 연결된 핫 키를 결정합니다. |
WM_SETHOTKEY | 핫 키를 창에 연결합니다. 사용자가 핫 키를 누르면 시스템에서 창을 활성화합니다. |
알림을
이름 | 묘사 |
---|---|
WM_ACTIVATE | 활성화되는 창과 비활성화 중인 창으로 전송됩니다. 창에서 동일한 입력 큐를 사용하는 경우 메시지는 먼저 비활성화되는 최상위 창의 창 프로시저로 동기적으로 전송된 다음 활성화되는 최상위 창의 창 프로시저로 전송됩니다. 창에서 다른 입력 큐를 사용하는 경우 메시지가 비동기적으로 전송되므로 창이 즉시 활성화됩니다. |
WM_APPCOMMAND | 예를 들어 마우스를 사용하여 애플리케이션 명령 단추를 클릭하거나 키보드에 애플리케이션 명령 키를 입력하여 사용자가 애플리케이션 명령 이벤트를 생성했음을 창에 알립니다. |
WM_CHAR |
TranslateMessage 함수에서 WM_KEYDOWN 메시지를 번역할 때 키보드 포커스가 있는 창에 게시됩니다.
WM_CHAR 메시지에는 누른 키의 문자 코드가 포함되어 있습니다. |
WM_DEADCHAR |
TranslateMessage 함수에서 WM_KEYUP 메시지를 번역할 때 키보드 포커스가 있는 창에 게시됩니다.
WM_DEADCHAR 데드 키로 생성된 문자 코드를 지정합니다. 데드 키는 복합 문자를 형성하기 위해 다른 문자와 결합되는 움라우트(이중 점)와 같은 문자를 생성하는 키입니다. 예를 들어 umlaut-O 문자()는 umlaut 문자의 데드 키를 입력한 다음 O 키를 입력하여 생성됩니다. |
WM_HOTKEY | 사용자가 RegisterHotKey 함수에 의해 등록된 핫 키를 누를 때 게시됩니다. 메시지는 핫 키를 등록한 스레드와 연결된 메시지 큐의 맨 위에 배치됩니다. |
WM_KEYDOWN | 비시스템 키를 누르면 키보드 포커스가 있는 창에 게시됩니다. 비시스템 키는 ALT 키를 누르지 않을 때 누른 키입니다. |
WM_KEYUP | 비시스템 키가 해제될 때 키보드 포커스가 있는 창에 게시됩니다. 비시스템 키는 ALT 키를 누르지 않을 때 누른 키 또는 창에 키보드 포커스가 있을 때 누른 키보드 키입니다. |
WM_KILLFOCUS | 키보드 포커스를 잃기 직전에 창으로 전송됩니다. |
WM_SETFOCUS | 키보드 포커스를 얻은 후 창으로 전송됩니다. |
WM_SYSDEADCHAR |
TranslateMessage 함수에서 WM_SYSKEYDOWN 메시지를 번역할 때 키보드 포커스가 있는 창으로 전송됩니다.
WM_SYSDEADCHAR 시스템 데드 키의 문자 코드( ALT 키를 누른 상태에서 누른 데드 키)를 지정합니다. |
WM_SYSKEYDOWN | 사용자가 F10 키를 누르거나(메뉴 모음을 활성화) ALT 키를 누른 다음 다른 키를 누를 때 키보드 포커스가 있는 창에 게시됩니다. 또한 현재 키보드 포커스가 있는 창이 없는 경우에도 발생합니다. 이 경우 WM_SYSKEYDOWN 메시지가 활성 창으로 전송됩니다. 메시지를 수신하는 창은 lParam 매개 변수에서 컨텍스트 코드를 확인하여 이러한 두 컨텍스트를 구분할 수 있습니다. |
WM_SYSKEYUP | 사용자가 ALT 키를 누른 상태에서 누른 키를 놓을 때 키보드 포커스가 있는 창에 게시됩니다. 또한 현재 키보드 포커스가 있는 창이 없는 경우에도 발생합니다. 이 경우 WM_SYSKEYUP 메시지가 활성 창으로 전송됩니다. 메시지를 수신하는 창은 lParam 매개 변수에서 컨텍스트 코드를 확인하여 이러한 두 컨텍스트를 구분할 수 있습니다. |
WM_UNICHAR |
TranslateMessage 함수에서 WM_KEYDOWN 메시지를 번역할 때 키보드 포커스가 있는 창에 게시됩니다.
WM_UNICHAR 메시지에는 누른 키의 문자 코드가 포함되어 있습니다. |
구조
이름 | 묘사 |
---|---|
HARDWAREINPUT | 키보드 또는 마우스 이외의 입력 디바이스에서 생성된 시뮬레이션된 메시지에 대한 정보를 포함합니다. |
입력 | 키 입력, 마우스 이동 및 마우스 클릭과 같은 입력 이벤트를 합성하는 데 사용되는 정보를 포함합니다. |
KEYBDINPUT | 시뮬레이션된 키보드 이벤트에 대한 정보를 포함합니다. |
LASTINPUTINFO | 마지막 입력 시간을 포함합니다. |
MOUSEINPUT | 시뮬레이션된 마우스 이벤트에 대한 정보를 포함합니다. |
상수
이름 | 묘사 |
---|---|
Virtual-Key 코드 | 시스템에서 사용하는 가상 키 코드에 해당하는 기호 상수 이름, 16진수 값 및 마우스 또는 키보드입니다. 코드는 숫자 순서로 나열됩니다. |
참고 항목
- 키보드 입력 대한