다음을 통해 공유


GetKeyboardState 함수(winuser.h)

256개 가상 키의 상태를 지정된 버퍼에 복사합니다.

문법

BOOL GetKeyboardState(
  [out] PBYTE lpKeyState
);

매개 변수

[out] lpKeyState

형식: PBYTE

각 가상 키에 대한 상태 데이터를 수신하는 256 바이트 배열입니다.

반환 값

형식: BOOL

함수가 성공하면 반환 값은 0이 아닌 값입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.

비고

애플리케이션은 이 함수를 호출하여 모든 가상 키의 현재 상태를 검색할 수 있습니다. 스레드가 메시지 큐에서 키보드 메시지를 제거하면 상태가 변경됩니다. 키보드 메시지가 스레드의 메시지 큐에 게시될 때 상태는 변경되지 않으며 키보드 메시지가 다른 스레드의 메시지 큐에 게시되거나 검색될 때 변경되지 않습니다. (예외: AttachThreadInput 을 통해 연결된 스레드는 동일한 키보드 상태를 공유합니다.)

함수가 반환되면 lpKeyState 매개 변수가 가리키는 배열의 각 멤버에는 가상 키에 대한 상태 데이터가 포함됩니다. 상위 비트가 1이면 키가 다운됩니다. 그렇지 않으면 작동합니다. 키가 토글 키(예: CAPS LOCK)인 경우 키가 전환되면 하위 비트는 1이고 키가 토글 해제된 경우 0입니다. 낮은 순서의 비트는 토글이 아닌 키에 의미가 없습니다. 토글 키를 켜면 토글 키를 전환했다고 합니다. 키가 토글되면 키보드의 토글 키 표시등(있는 경우)이 켜지고 키가 토글 해제될 때 꺼집니다.

개별 키에 대한 상태 정보를 검색하려면 GetKeyState 함수를 사용합니다. 해당 키보드 메시지가 메시지 큐에서 검색되었는지 여부에 관계없이 개별 키의 현재 상태를 검색하려면 GetAsyncKeyState 함수를 사용합니다.

애플리케이션은 가상 키 코드 상수 VK_SHIFT, VK_CONTROLVK_MENUlpKeyState가 가리키는 배열에 대한 인덱스로 사용할 수 있습니다. 이렇게 하면 왼쪽과 오른쪽을 구분하지 않고 Shift, Ctrl 또는 Alt 키의 상태가 제공됩니다. 애플리케이션은 다음 가상 키 코드 상수도 인덱스로 사용하여 해당 키의 왼쪽 인스턴스와 오른쪽 인스턴스를 구분할 수 있습니다.

VK_LSHIFT
VK_RSHIFT
VK_LCONTROL
VK_RCONTROL
VK_LMENU
VK_RMENU
 

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

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 윈도우즈
Header winuser.h(Windows.h 포함)
Library User32.lib
DLL User32.dll
API 집합 ext-ms-win-ntuser-rawinput-l1-1-0(Windows 10 버전 10.0.14393에서 도입됨)

참고하십시오