다음을 통해 공유


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

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

예제

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

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

추가 정보