매크로 핫키 만들기를 위해 기본 인터페이스는 생략하고 코드만 작성하려한다.
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) |
'유니티' 카테고리의 다른 글
Unity(유니티)_매크로 핫키 만들기(마우스 클릭) (0) | 2024.03.02 |
---|---|
Unity(유니티)_매크로 핫키 만들기(마우스 위치) 지정 (0) | 2024.03.02 |
Unity(유니티)_매크로 핫키 만들기(키보드 입력, 키 코드) 정리 (0) | 2024.03.02 |
Unity(유니티)_InputField 특정 문자만 작성 가능하게 하기 (0) | 2024.02.28 |
Unity(유니티)_InputField 글자 수 제한 (0) | 2024.02.28 |