반응형

C#프로그램에서 키보드 입력 이벤트를 발생시키는 방법입니다.

키보드에 뭔가가 입력되었을때를 감지하는게 아니라

keybd_event를 이용해서 마치 사람이 키보드를 입력한것 처럼 만들어 주는 방식입니다.


keyboard.txt


▲ 코드 복붙이 안되서 코드는 위 txt파일을 여시면 들어있습니다.


우선 win dll파일을 하나 임폴트 해줍니다.

[DllImport("user32.dll")]

static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);


그리고 사용하고자 하는 키코드를 미리 선언해둡니다.


private const int VK_RETURN = 0x0D;

private const int VK_A = 0x41;

private const int VK_D = 0x44;


▲ 상기 코드같은 경우 키보드 A와 D 그리고 엔터키 3가지 입니다.


그리고 키입력이 필요한 이벤트에 아래 함수를 추가합니다.


keybd_event(VK_A, 0, 0, 0);

keybd_event(VK_A, 0, 0x02, 0);


▲ 상기 코드는 키보드 A키를 눌렀다가 떼는 것을 의미합니다.


keybd_event(VK_D, 0, 0, 0);

keybd_event(VK_D, 0, 0x02, 0);


▲ 마찬가지로 키보드 D를 눌렀다가 떼는 것을 의미합니다.


C#의 폼과 타이머 각종 이벤트를 사용해서

오토키보드를 만들 수 있습니다.


한번 응용해보세요~!

반응형
Posted by 덕력킹
,