본문 바로가기

자료

실제 키보드 입력과 가상 키보드 이벤트를 구분하는법

728x90

실제 키보드 입력과 가상 키보드 이벤트를 구분하는법

하드웨어 입력과 소프트 입력 구분 방법

전역 키보드 후킹을 진행합니다

 

lParam -> KBDLLHOOKSTRUCT 구조체로 명시적 변환합니다.

 

public class KBDLLHOOKSTRUCT

        {

            public uint vkCode;

            public uint scanCode;

            public KBDLLHOOKSTRUCTFlags flags;

            public uint time;

            public UIntPtr dwExtraInfo;

        }

 

flags 를 살펴봅니다.

 

public enum KBDLLHOOKSTRUCTFlags : uint

{

    LLKHF_EXTENDED = 0x01,

   LLKHF_INJECTED = 0x10,

    LLKHF_ALTDOWN = 0x20,

    LLKHF_UP = 0x80,

}

SendInput 이나 keybd_event 로 가상 키보드 이벤트를 발생시켰을때

LLKHF_INJECTED 플래그가 서게됩니다.
+ 마우스 - MSLLHOOKSTRUCT

728x90