다음을 통해 공유


GetKeyState 함수(winuser.h)

지정된 가상 키의 상태를 검색합니다. 상태는 키가 위쪽, 아래쪽 또는 토글되었는지(키를 누를 때마다 번갈아 켜기, 해제) 여부를 지정합니다.

Syntax

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_CONTROLVK_MENU가상 키 코드 상수를 사용할 수 있습니다. 이렇게 하면 왼쪽과 오른쪽을 구분하지 않고 Shift, Ctrl 또는 Alt 키의 상태가 제공됩니다. 애플리케이션은 다음 가상 키 코드 상수도 nVirtKey 의 값으로 사용하여 해당 키의 왼쪽 인스턴스와 오른쪽 인스턴스를 구분할 수 있습니다.

VK_LSHIFTVK_RSHIFTVK_LCONTROLVK_RCONTROLVK_LMENU VK_RMENU 이러한 왼쪽 및 오른쪽 구분 상수는 GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyStateMapVirtualKey 함수를 통해서만 애플리케이션에서 사용할 수 있습니다.

예시

예를 들어 키보드 입력 표시를 참조하세요.

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 윈도우즈
Header winuser.h(Windows.h 포함)
Library User32.lib
DLL User32.dll

참고하십시오