■ SystemEvents 클래스 : SessionSwitch 정적 이벤트를 사용해 세션 잠금/해제 처리하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


Program.cs

 

 

using Microsoft.Win32;

using System;

using System.IO;

 

namespace TestProject

{

    /// <summary>

    /// 프로그램

    /// </summary>

    class Program

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Static

        //////////////////////////////////////////////////////////////////////////////// Private

        ////////////////////////////////////////////////////////////////////// Event

 

        #region 시스템 이벤트 세션 스위치 처리하기 - SystemEvents_SessionSwitch(sender, e)

 

        /// <summary>

        /// 시스템 이벤트 세션 스위치 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)

        {

            switch(e.Reason)

            {

                case SessionSwitchReason.SessionLock :

 

                    WriteLog("SessionLock");

 

                    break;

 

                case SessionSwitchReason.SessionUnlock :

 

                    WriteLog("SessionUnlock");

 

                    break;

            }

        }

 

        #endregion

 

        ////////////////////////////////////////////////////////////////////// Function

 

        #region 프로그램 시작하기 - Main()

 

        /// <summary>

        /// 프로그램 시작하기

        /// </summary>

        private static void Main()

        {

            Console.Title = "SystemEvents 클래스 : SessionSwitch 정적 이벤트를 사용해 세션 잠금/해제 처리하기";

 

            SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;

 

            Console.WriteLine("프로그램을 종료하기 위해서 아무 키나 눌러 주시기 바랍니다.");

 

            Console.ReadKey(false);

        }

 

        #endregion

 

        #region 로그 작성하기 - WriteLog(message)

 

        /// <summary>

        /// 로그 작성하기

        /// </summary>

        /// <param name="message">메시지</param>

        private static void WriteLog(string message)

        {

            string log = string.Format("[{0}] {1}", DateTime.Now.ToString("HH:mm:ss"), message);

 

            using(StreamWriter writer = File.AppendText("d:\\log.txt"))

            {

                writer.WriteLine(log);

            }

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요