본문 바로가기

유니티

Unity(유니티)_매크로 핫키 만들기(키보드 입력, 키 코드)

매크로 핫키 만들기를 위해 기본 인터페이스는 생략하고 코드만 작성하려한다.

 

1. 키보드 입력 방식

using System;
using System.Runtime.InteropServices;
using UnityEngine;

public class KeyboardMacro : MonoBehaviour
{
    // user32.dll에서 가져온 keybd_event 함수
    [DllImport("user32.dll")]
    public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

    // 키를 누르는 상수 값
    private const int KEYEVENTF_KEYDOWN = 0x0000;

    // 키를 떼는 상수 값
    private const int KEYEVENTF_KEYUP = 0x0002;

    // 매크로 실행 함수
    public static void RunMacro(byte key)
    {
        // keybd_event 함수를 사용하여 키를 누르고 떼는 매크로를 실행합니다.
        keybd_event(key, 0, KEYEVENTF_KEYDOWN, 0);
        keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
    }
}

 

2. RunMacro메서드에 들어갈 byte key 내용들 확인 

0x41: 'A' 키
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' 키
'a': 0x61
'b': 0x62
'c': 0x63
'd': 0x64
'e': 0x65
'f': 0x66
'g': 0x67
'h': 0x68
'i': 0x69
'j': 0x6A
'k': 0x6B
'l': 0x6C
'm': 0x6D
'n': 0x6E
'o': 0x6F
'p': 0x70
'q': 0x71
'r': 0x72
's': 0x73
't': 0x74
'u': 0x75
'v': 0x76
'w': 0x77
'x': 0x78
'y': 0x79
'z': 0x7A
0x30: '0' 키
0x31: '1' 키
0x32: '2' 키
0x33: '3' 키
0x34: '4' 키
0x35: '5' 키
0x36: '6' 키
0x37: '7' 키
0x38: '8' 키
0x39: '9' 키
0x08: 백스페이스 키
0x09: 탭 키
0x0D: 엔터 키
0x1B: ESC 키
0x20: 스페이스바
0x1B: ESC 키
0x21: Page Up
0x22: Page Down
0x23: End
0x24: Home
0x25: 왼쪽 화살표 키
0x26: 위쪽 화살표 키
0x27: 오른쪽 화살표 키
0x28: 아래쪽 화살표 키
0x2C: Print Screen
0x2D: Insert
0x2E: Delete
0x5B: 왼쪽 Windows 키
0x5C: 오른쪽 Windows 키
0x5D: 응용 프로그램 키 (App Key)