프로젝트/C# 원격제어 프로그램

[C#] 원격 제어 프로그램 12. 원격 제어 이벤트 수신 이벤트

언휴 2024. 1. 8. 09:10

1. 유튜브 동영상 강의

원격 제어 이벤트 수신 이벤트 인자 클래스 구현

2. 원격 제어 이벤트 수신 이벤트

원격 제어 이벤트를 수신하였을 때 이를 통보하기 위한 RecvMEEventArgs 클래스를 추가하세요.

public class RecvKMEEventArgs : EventArgs
{

수신한 메시지를 분석한 Meta 개체를 속성으로 제공합시다.

    public Meta Meta
    {
        get;
        private set;
    }

사용하기 편하게 Meta의 각 속성을 빠르게 접근할 수 있는 속성을 제공합시다.

    public int Key
    {
        get
        {
            return Meta.Key;
        }
    }
    public Point Now
    {
        get
        {
            return Meta.Now;
        }
    }
    public MsgType MT
    {
        get
        {
            return Meta.Mt;
        }
    }
    internal RecvKMEEventArgs(Meta meta)
    {
        Meta = meta;
    }
}
public delegate void RecvKMEEventHandler(object sender, RecvKMEEventArgs e);

다음은 이번 실습에서 작성한 소스 코드입니다.

//RecvKMEEventArgs.cs
using System;
using System.Drawing;

namespace 원격제어기
{
    /// <summary>
    /// 원격 제어 이벤트 수신하였음을 통보하는 이벤트 인자 클래스
    /// </summary>
    public class RecvKMEEventArgs : EventArgs
    {
        /// <summary>
        /// 수신한 원격 제어 이벤트를 분석한 개체 - 가져오기
        /// </summary>
        public Meta Meta
        {
            get;
            private set;
        }

        /// <summary>
        /// 키보드 관련 이벤트일 때 키 - 가져오기
        /// </summary>
        public int Key
        {
            get
            {
                return Meta.Key;
            }
        }

        /// <summary>
        /// 마우스 이동 이벤트일 때 좌표 - 가져오기
        /// </summary>
        public Point Now
        {
            get
            {
                return Meta.Now;
            }
        }

        /// <summary>
        /// 원격 제어 이벤트 종류 - 가져오기
        /// </summary>
        public MsgType MT
        {
            get
            {
                return Meta.Mt;
            }
        }

        internal RecvKMEEventArgs(Meta meta)
        {
            Meta = meta;
        }
    }

    /// <summary>
    /// 원격 제어 이벤트 정보 수신하였음을 통보하는 이벤트에 관한 대리자
    /// </summary>
    /// <param name="sender">이벤트 통보 개체(게시자)</param>
    /// <param name="e">이벤트 인자</param>
    public delegate void RecvKMEEventHandler(object sender, RecvKMEEventArgs e);
}