본문 바로가기
IT·컴퓨터

GetAsyncKeyState 함수

by 기부전사 2024. 3. 27.
SHORT GetAsyncKeyState(int vKey);

 

GetAsyncKeyState 함수는 키보드의 키가 눌러졌는지를 비동기적으로 확인하는 함수로, Windows 운영체제에서 제공됩니다. 이 함수는 다음과 같은 매개변수를 받습니다.

  • vKey: 확인할 키의 가상 키 코드입니다. 예를 들어 VK_LBUTTON은 왼쪽 마우스 버튼을 나타냅니다.

가상 키 코드는 키보드의 각 키에 할당된 고유한 숫자 값으로, Windows에서는 0부터 255까지의 값을 사용합니다. 예를 들어, 'A' 키의 가상 키 코드는 65이고, 'B' 키의 가상 키 코드는 66입니다.

이 함수는 다음과 같은 값을 반환합니다.

  • -32767: 키가 눌러지지 않았습니다.
  • 0: 키가 눌러졌지만, 아직 처리되지 않았습니다.
  • 양수: 키가 눌러졌고, 이미 처리되었습니다.

반환 값이 양수인 경우, 해당 키가 눌러진 상태임을 의미합니다. 이때, 반환 값은 키가 눌러진 시간에 따라 달라집니다.

다음은 GetAsyncKeyState 함수를 사용하는 예시입니다

 

#include <iostream>
#include <Windows.h>

int main() {
    while (true) {
        if (GetAsyncKeyState(VK_LEFT)) {
            std::cout << "Left key pressed" << std::endl;
        }
        if (GetAsyncKeyState(VK_RIGHT)) {
            std::cout << "Right key pressed" << std::endl;
        }
    }
    return 0;
}

 

위의 코드는 'Left' 키와 'Right' 키가 눌러졌는지를 확인하고, 해당 키가 눌러진 경우 메시지를 출력하는 예시입니다.

GetAsyncKeyState 함수는 키가 눌러진 상태를 실시간으로 확인할 수 있기 때문에, 게임이나 그래픽 프로그램 등에서 많이 사용됩니다. 하지만, 이 함수는 키가 눌러진 시간을 정확하게 파악할 수 없기 때문에, 키가 연속적으로 눌러진 경우에는 처리가 어려울 수 있습니다.

반응형