GetKeyState 함수(winuser.h)
지정된 가상 키의 상태를 가져옵니다. 상태 키가 위쪽, 아래쪽 또는 토글되었는지(키를 누를 때마다 번갈아 가며 켜기, 끄기) 여부를 지정합니다.
구문
SHORT GetKeyState(
[in] int nVirtKey
);
매개 변수
[in] nVirtKey
형식: int
가상 키입니다. 원하는 가상 키가 문자 또는 숫자(A-Z, a- z 또는 0~9)인 경우 nVirtKey 를 해당 문자의 ASCII 값으로 설정해야 합니다. 다른 키의 경우 가상 키 코드여야 합니다.
영어가 아닌 자판 배열을 사용하는 경우 ASCII A부터 Z까지, 0~9 범위의 값을 가진 가상 키를 사용하여 대부분의 문자 키를 지정합니다. 예를 들어 독일어 키보드 레이아웃의 경우 ASCII O(0x4F) 값의 가상 키는 "o" 키를 참조하는 반면, VK_OEM_1 "o with umlaut" 키를 가리킵니다.
반환 값
형식: SHORT
반환 값은 지정된 가상 키의 상태 다음과 같이 지정합니다.
- 상위 비트가 1이면 키가 다운됩니다. 그렇지 않으면 작동합니다.
- 하위 비트가 1이면 키가 토글됩니다. CAPS LOCK 키와 같은 키가 켜져 있으면 토글됩니다. 낮은 순서 비트가 0인 경우 키가 꺼져 있고 토글 해제됩니다. 키를 토글할 때 키보드에 있는 토글 키의 표시등(있는 경우)이 켜지고 키가 토글 해제될 때 꺼집니다.
설명
스레드가 메시지 큐에서 키 메시지를 읽으면서 이 함수에서 반환된 키 상태 변경됩니다. 상태 하드웨어와 연결된 인터럽트 수준 상태를 반영하지 않습니다. GetAsyncKeyState 함수를 사용하여 해당 정보를 검색합니다.
애플리케이션은 키보드 입력 메시지에 대한 응답으로 GetKeyState 를 호출합니다. 이 함수는 입력 메시지가 생성될 때 키의 상태를 검색합니다.
모든 가상 키에 대한 상태 정보를 검색하려면 GetKeyboardState 함수를 사용합니다.
애플리케이션은 nVirtKey 매개 변수의 값으로 VK_SHIFT, VK_CONTROL 및 VK_MENU가상 키 코드 상수를 사용할 수 있습니다. 이렇게 하면 왼쪽과 오른쪽을 구분하지 않고 Shift, Ctrl 또는 Alt 키의 상태 수 있습니다. 애플리케이션은 다음 가상 키 코드 상수를 nVirtKey 의 값으로 사용하여 해당 키의 왼쪽 인스턴스와 오른쪽 인스턴스를 구분할 수도 있습니다.
VK_LSHIFTVK_RSHIFTVK_LCONTROLVK_RCONTROLVK_LMENUVK_RMENU 이러한 왼쪽 및 오른쪽 구분 상수는 GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState 및 MapVirtualKey 함수를 통해서만 애플리케이션에서 사용할 수 있습니다.
예제
예를 들어 키보드 입력 표시를 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |