프로젝트 도중 키 이벤트를 강제로 발생시켜야 하는 상황이 생겼는데요;;
SendMessage로 WM_KEYDOWN을 보내놓고, 키가 입력되지 않는다고 화내고 있었습니다''
keybd_event라는 키보드 메세지를 생성해주는 훌륭한 Win32 API함수가 있더군요
keybd_event 함수의 원형은 다음과 같습니다.(USER32.DLL)
가상키코드를 지정하는데 1~125 범위의 값이어야 합니다.
SendMessage로 WM_KEYDOWN을 보내놓고, 키가 입력되지 않는다고 화내고 있었습니다''
keybd_event라는 키보드 메세지를 생성해주는 훌륭한 Win32 API함수가 있더군요
keybd_event 함수의 원형은 다음과 같습니다.(USER32.DLL)
VOID keybd_event(bVK
BYTE bVk, // 가상 키코드
BYTE bScan, // 하드웨어 스캔 코드
DWORD dwFlags, // 동작 지정 Flag
PTR dwExtraInfo // 추가 정보
);
가상키코드를 지정하는데 1~125 범위의 값이어야 합니다.
bScan
사용하지 않는 인자 입니다.
dwFlags
함수의 동작을 지정하는데 0을 넣을 경우 KeyDown이고 0x0002를 넣을 경우 KeyUP 입니다.
dwExtraInfo
키스트로크 관련 32비트의 추가 정보를 지정 한다고 합니다.
C#에서 사용시!
사용하지 않는 인자 입니다.
dwFlags
함수의 동작을 지정하는데 0을 넣을 경우 KeyDown이고 0x0002를 넣을 경우 KeyUP 입니다.
dwExtraInfo
키스트로크 관련 32비트의 추가 정보를 지정 한다고 합니다.
C#에서 사용시!
[DllImport("user32.dll)]
public static extern void Keybd_event(byte vk, byte scan, int flags, ref int extrainfo);
※ ex)
const byte AltKey = 18;
const int KEYUP = 0x0002;
int Info=0;
keybd_event(AltKey, 0, 0, ref Info); // ALT key 다운
keybd_event(AltKey, 0, KEYUP, ref Info); // ALT key 업
public static extern void Keybd_event(byte vk, byte scan, int flags, ref int extrainfo);
※ ex)
const byte AltKey = 18;
const int KEYUP = 0x0002;
int Info=0;
keybd_event(AltKey, 0, 0, ref Info); // ALT key 다운
keybd_event(AltKey, 0, KEYUP, ref Info); // ALT key 업
'.NET > Visual C#' 카테고리의 다른 글
Windows Form의 Loaded 이벤트 (5) | 2009.06.11 |
---|---|
트레이 아이콘을 가지는 윈도우 만들기 (17) | 2009.06.08 |
[Win32API] 타이틀바 높이 알아오기 - GetSystemMetrics() (1) | 2009.05.31 |
Random Class를 파해쳐 보자! (8) | 2009.01.07 |
NET Framework 3.0 LINQ (6) | 2008.12.23 |