본문 바로가기

자료

[C#/VB.NET]GetKeyState - 해당 Key가 눌려졌는지에 대한 상태값 반환

728x90

[C#/VB..NET]GetKeyState - 해당 Key가 눌려졌는지에 대한 상태값 반환


GetKeyState 함수는 인수로 전달된 값에 해당하는 Key가 눌려졌는지의 여부를 Toggle 유형의 값으로 반환합니다.

Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal keyCode As Integer) As Short

▶VB.NET 선언

GetKeyState(65)

▶VB.NET 호출

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern short GetKeyState(int keyCode);

▶C# 선언

GetKeyState(65);

▶C# 호출


위 예제에서 함수를 호출할때 인수로 전달한 65는 'A' Key에 해당하는 Ascii Code값입니다.

결과에서 1이면 눌려졌음을 의미하고 0이면 처음부터 눌려진적이 없거나 1상태에서 다시 한번 눌려졌음을 의미합니다. 만일 확인하고자 하는 key의 Ascii Code값을 모르는 상태라면 다음과 같은 방식으로 함수를 호출할 수 도 있습니다.

GetKeyState(Keys.CapsLock)

Keys.다음에 오는 CapsLock Key에 해당하는 Ascii Code값을 불러와 GetKeyState함수에 인수로 전달하고 있습니다.

728x90