[DllImport("user32.dll")]
public static extern void keybd_event(uint vk, uint scan, uint flags, uint extraInfo);
[DllImport("user32.dll")]
private static extern uint MapVirtualKey(int wCode, int wMapType);
// 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 업
// F4
// keydown 0x100
// keyup 0x101
SendMessage(whandle, 0x100, 0x73, IntPtr.Zero);
SendMessage(whandle, 0x101, 0x73, IntPtr.Zero);
keybd_event((byte)Keys.ControlKey, 0, 0x00, 0);
keybd_event((byte)Keys.ControlKey, 0, 0x02, 0);
//콘트롤키 눌렀다 뗌
keybd_event(0, MapVirtualKey((int)Keys.D1, 0), 0x00, 0);
keybd_event(0, MapVirtualKey((int)Keys.D1, 0), 0x02, 0);
//숫자1키 눌렀다 뗌
| 상수 |
값 |
Description |
| VK_LBUTTON |
0x01 |
마우스 왼쪽 단추 |
| VK_RBUTTON |
0x02 |
마우스 오른쪽 단추 |
| VK_CANCEL |
0x03 |
제어 중단 처리 |
| VK_MBUTTON |
0x04 |
마우스 가운데 단추 (3 단추 마우스) |
| VK_XBUTTON1 |
0x05 |
X1 마우스 단추 |
| VK_XBUTTON2 |
0x06 |
X2 마우스 단추 |
| - |
0x07 |
정의되지 않음 |
| VK_BACK |
0x08 |
백스페이스 키 |
| VK_TAB |
0x09 |
Tab 키 |
| - |
0x0A-0B |
예약됨 |
| VK_CLEAR |
0x0C |
키 지우기 |
| VK_RETURN |
0x0D |
키 입력 |
| - |
0x0E-0F에서 |
정의되지 않음 |
| VK_SHIFT |
0x10 |
SHIFT 키 |
| VK_CONTROL |
0x11 |
CTRL 키 |
| VK_MENU |
0x12 |
Alt 키 |
| VK_PAUSE |
0x13 |
키 일시 중지 |
| VK_CAPITAL |
0x14 |
Caps lock 키 |
| VK_KANA |
0x15 |
IME 가나 모드 |
| VK_HANGUEL |
0x15 |
IME 한글 모드 (호환성을 위해 유지 됩니다. 사용 VK_HANGUL ) |
| VK_HANGUL |
0x15 |
IME 한글 모드 |
| VK_IME_ON |
0x16 |
IME 설정 |
| VK_JUNJA |
0x17 |
IME 전자 모드 |
| VK_FINAL |
0x18 |
IME 최종 모드 |
| VK_HANJA |
0x19 |
IME 한자 모드 |
| VK_KANJI |
0x19 |
IME 간지 모드 |
| VK_IME_OFF |
0x1A |
IME 해제 |
| VK_ESCAPE |
0x1B |
ESC 키 |
| VK_CONVERT |
0x1C |
IME 변환 |
| VK_NONCONVERT |
0x1D |
IME 변환 안 함 |
| VK_ACCEPT |
0x1E |
IME 수락 |
| VK_MODECHANGE |
0x1F |
IME 모드 변경 요청 |
| VK_SPACE |
0x20 |
스페이스바 |
| VK_PRIOR |
0x21 |
PAGE UP 키 |
| VK_NEXT |
0x22 |
PAGE DOWN 키 |
| VK_END |
0x23 |
끝 키 |
| VK_HOME |
0x24 |
HOME 키 |
| VK_LEFT |
0x25 |
왼쪽 화살표 키 |
| VK_UP |
0x26 |
위쪽 화살표 키 |
| VK_RIGHT |
0x27 |
오른쪽 화살표 키 |
| VK_DOWN |
0x28 |
아래쪽 화살표 키 |
| VK_SELECT |
0x29 |
키 선택 |
| VK_PRINT |
0x2A |
인쇄 키 |
| VK_EXECUTE |
0x2B |
키 실행 |
| VK_SNAPSHOT |
0x2C |
화면 키 인쇄 |
| VK_INSERT |
0x2D |
INS 키 |
| VK_DELETE |
0x2E |
DEL 키 |
| VK_HELP |
0x2F |
도움말 키 |
| |
0x30 |
0 키 |
| |
0x31 |
키 1개 |
| |
0x32 |
2 키 |
| |
0x33 |
3 키 |
| |
0x34 |
4 키 |
| |
0x35 |
5 키 |
| |
0x36 |
6 키 |
| |
0x37 |
7 키 |
| |
0x38 |
8 키 |
| |
0x39 |
9 키 |
| - |
0x3A-40 |
정의되지 않음 |
| |
0x41 |
키 |
| |
0x42 |
B 키 |
| |
0x43 |
C 키 |
| |
0x44 |
D 키 |
| |
0x45 |
E 키 |
| |
0x46 |
F 키 |
| |
0x47 |
G 키 |
| |
0x48 |
H 키 |
| |
0x49 |
I 키 |
| |
0x4A |
J 키 |
| |
0x4B |
K 키 |
| |
0x4C |
L 키 |
| |
0x4D |
M 키 |
| |
0x4E |
N 키 |
| |
0x4F |
O 키 |
| |
0x50 |
P 키 |
| |
0x51 |
Q 키 |
| |
0x52 |
R 키 |
| |
0x53 |
S 키 |
| |
0x54 |
T 키 |
| |
0x55 |
U 키 |
| |
0x56 |
V 키 |
| |
0x57 |
W 키 |
| |
0x58 |
X 키 |
| |
0x59 |
Y 키 |
| |
0x5A |
Z 키 |
| VK_LWIN |
0x5B |
왼쪽 Windows 키 (자연 키보드) |
| VK_RWIN |
0x5C |
오른쪽 Windows 키 (자연 키보드) |
| VK_APPS |
0x5D |
응용 프로그램 키 (자연 키보드) |
| - |
0x5E |
예약됨 |
| VK_SLEEP |
0x5F |
컴퓨터 절전 키 |
| VK_NUMPAD0 |
0x60 |
숫자 키패드 0 키 |
| VK_NUMPAD1 |
0x61 |
숫자 키패드 1 키 |
| VK_NUMPAD2 |
0x62 |
숫자 키패드 2 키 |
| VK_NUMPAD3 |
0x63 |
숫자 키패드 3 키 |
| VK_NUMPAD4 |
0x64 |
숫자 키패드 4 키 |
| VK_NUMPAD5 |
0x65 |
숫자 키패드 5 키 |
| VK_NUMPAD6 |
0x66 |
숫자 키패드 6 키 |
| VK_NUMPAD7 |
0x67 |
숫자 키패드 7 키 |
| VK_NUMPAD8 |
0x68 |
숫자 키패드 8 키 |
| VK_NUMPAD9 |
0x69 |
숫자 키패드 9 키 |
| VK_MULTIPLY |
0x6A |
곱하기 키 |
| VK_ADD |
0x6B |
키 추가 |
| VK_SEPARATOR |
0x6C |
구분 기호 키 |
| VK_SUBTRACT |
0x6D |
키 빼기 |
| VK_DECIMAL |
0x6E |
10진수 키 |
| VK_DIVIDE |
0x6F |
키 나누기 |
| VK_F1 |
0x70 |
F1 키 |
| VK_F2 |
0x71 |
F2 키 |
| VK_F3 |
0x72 |
F3 키 |
| VK_F4 |
0x73 |
F4 키 |
| VK_F5 |
0x74 |
F5 키 |
| VK_F6 |
0x75 |
F6 키 |
| VK_F7 |
0x76 |
F7 키 |
| VK_F8 |
0x77 |
F8 키 |
| VK_F9 |
0x78 |
F9 키 |
| VK_F10 |
0x79 |
F10 키 |
| VK_F11 |
0x7A |
F11 키 |
| VK_F12 |
0x7B |
F12 키 |
| VK_F13 |
0x7C |
F13 키 |
| VK_F14 |
0x7D |
F14 키 |
| VK_F15 |
0x7e |
F15 키 |
| VK_F16 |
0x7F |
F16 키 |
| VK_F17 |
0x80 |
F17 키 |
| VK_F18 |
0x81 |
F18 키 |
| VK_F19 |
0x82 |
F19 키 |
| VK_F20 |
0x83 |
F20 키 |
| VK_F21 |
0x84 |
F21 키 |
| VK_F22 |
0x85 |
F22 키 |
| VK_F23 |
0x86 |
F23 키 |
| VK_F24 |
0x87 |
F24 키 |
| - |
0x88-8F |
할당되지 않음 |
| VK_NUMLOCK |
0x90 |
NUM LOCK 키 |
| VK_SCROLL |
0x91 |
SCROLL LOCK 키 |
| |
0x92-96 |
OEM 관련 |
| - |
0x97-9F |
할당되지 않음 |
| VK_LSHIFT |
0xA0 |
왼쪽 Shift 키 |
| VK_RSHIFT |
0xA1 |
오른쪽 Shift 키 |
| VK_LCONTROL |
0xA2 |
왼쪽 Ctrl 키 |
| VK_RCONTROL |
0xA3 |
오른쪽 Ctrl 키 |
| VK_LMENU |
0xA4 |
왼쪽 메뉴 키 |
| VK_RMENU |
0xA5 |
오른쪽 메뉴 키 |
| VK_BROWSER_BACK |
0xA6 |
브라우저 뒤로 키 |
| VK_BROWSER_FORWARD |
0xA7 |
브라우저 앞으로 키 |
| VK_BROWSER_REFRESH |
0xA8 |
브라우저 새로 고침 키 |
| VK_BROWSER_STOP |
0xA9 |
브라우저 중지 키 |
| VK_BROWSER_SEARCH |
0xAA |
브라우저 검색 키 |
| VK_BROWSER_FAVORITES |
0xAB |
브라우저 즐겨찾기 키 |
| VK_BROWSER_HOME |
0xAC |
브라우저 시작 및 홈 키 |
| VK_VOLUME_MUTE |
0xAD |
볼륨 음소거 키 |
| VK_VOLUME_DOWN |
0xAE |
볼륨 작게 키 |
| VK_VOLUME_UP |
0xAF |
볼륨 위로 키 |
| VK_MEDIA_NEXT_TRACK |
0xB0 |
다음 트랙 키 |
| VK_MEDIA_PREV_TRACK |
0xB1 |
이전 추적 키 |
| VK_MEDIA_STOP |
0xB2 |
미디어 키 중지 |
| VK_MEDIA_PLAY_PAUSE |
0xB3 |
미디어 키 재생/일시 중지 |
| VK_LAUNCH_MAIL |
0xB4 |
메일 키 시작 |
| VK_LAUNCH_MEDIA_SELECT |
0xB5 |
미디어 키 선택 |
| VK_LAUNCH_APP1 |
0xB6 |
응용 프로그램 1 키 시작 |
| VK_LAUNCH_APP2 |
0xB7 |
응용 프로그램 2 시작 키 |
| - |
0xB8-B9 |
예약됨 |
| VK_OEM_1 |
0xBA |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ';: ' 키 |
| VK_OEM_PLUS |
0xBB |
모든 국가/지역의 경우 ' + ' 키 |
| VK_OEM_COMMA |
0xBC |
모든 국가/지역의 경우 ', ' 키 |
| VK_OEM_MINUS |
0xBD |
모든 국가/지역의 경우 '-' 키 |
| VK_OEM_PERIOD |
0xBE |
모든 국가/지역의 경우 '. ' 키 |
| VK_OEM_2 |
0xBF |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 '/? '입니다. 키 |
| VK_OEM_3 |
0xC0 |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ' ` ~ ' 키 |
| - |
0xC1-D7 |
예약됨 |
| - |
0xD8-DA |
할당되지 않음 |
| VK_OEM_4 |
0xDB |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ' [ {' 키 |
| VK_OEM_5 |
0xDC |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ' \ | ' 키 |
| VK_OEM_6 |
0xDD |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ' ] } ' 키 |
| VK_OEM_7 |
0xDE |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. 미국 표준 키보드의 경우 ' 작은따옴표/큰따옴표 ' 키 |
| VK_OEM_8 |
0xDF |
기타 문자에 사용 됩니다. 이는 키보드에 따라 다를 수 있습니다. |
| - |
0xE0 |
예약됨 |
| |
0xE1 |
OEM 관련 |
| VK_OEM_102 |
0xE2 |
<>미국 표준 키보드의 키 또는 미국 102 키가 \\| 아닌 키보드의 키 |
| |
0xE3-E4 |
OEM 관련 |
| VK_PROCESSKEY |
0xE5 |
IME 프로세스 키 |
| |
0xE6 |
OEM 관련 |
| VK_PACKET |
0xE7 |
유니코드 문자를 키 입력인 것처럼 전달할 때 사용합니다. VK_PACKET키는 키보드 이외의 입력 방법에 사용 되는 32 비트 가상 키 값의 하위 워드입니다. 자세한 내용은 KEYBDINPUT ,, SendInput WM_KEYDOWN 및의 주석을 참조 하세요. WM_KEYUP |
| - |
0xE8 |
할당되지 않음 |
| |
0xE9-F5 |
OEM 관련 |
| VK_ATTN |
0xF6 |
Attn 키 |
| VK_CRSEL |
0xF7 |
CrSel 키 |
| VK_EXSEL |
0xF8 |
ExSel 키 |
| VK_EREOF |
0xF9 |
EOF 키 지우기 |
| VK_PLAY |
0xFA |
재생 키 |
| VK_ZOOM |
0xFB |
확대/축소 키 |
| VK_NONAME |
0xFC |
예약됨 |
| VK_PA1 |
0xFD |
PA1 키 |
| |
|
|
| VK_OEM_CLEAR |
0xFE |
키 지우기 |