본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] 키보드 이벤트 보내기

728x90
반응형

1. 네임스페이스

네임스페이스
using System.Runtime.InteropServices;

 

2. ASCII 아스키 코드

[기타] ASCII 아스키코드 참고

 

3. 소스

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

public class KeyboardEvent : MonoBehaviour
{
    [DllImport("user32.dll")]
    static extern uint keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

    private const int KEYEVENTF_KEYDOWN = 0x0000;
    private const int KEYEVENTF_EXTENDEDKEY = 0x0001;
    private const int KEYEVENTF_KEYUP = 0x0002;

    private const int VK_LCONTROL = 0xA2;
    private const int A = 0x41;

    void Start()
    {
        StartCoroutine(StartKeyboardEvnet());        
    }

    void Update()
    {
        GetKeyboardEvent();
    }

    IEnumerator StartKeyboardEvnet()
    {
        yield return new WaitForSeconds(1.0f);

        keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYDOWN, 0);
        keybd_event(A, 0, KEYEVENTF_KEYDOWN, 0);

        keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
        keybd_event(A, 0, KEYEVENTF_KEYUP, 0);
    }

    void GetKeyboardEvent()
    {
        if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.A))
            Debug.Log("Ctrl + A");
    }  
}
728x90
반응형