ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10. C# CONSOLE - 알람프로그램 만들기
    C# 2017. 2. 4. 00:57
    반응형

    - 이론만 배우기 재미없어서 하는 알람만들기.



    안녕하세요.


    이번엔 개허접한 알람을 들고왔습니다..;;;


    예외처리가 전혀! 안된 프로그램이니까! 많이많이 보완해야합니다;


    무튼 이번에 새롭게 나오는게


    - Timer

    - Media

    - Speech

    - DateTime


    뭐 이정도...??


    참고로 아래 예제는 TTS 로 되어있습니다.

    TTS 설정은 아래글을 확인하시면 됩니다.



    //====================================================



    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    //Timer 관련 라이브러리

    using System.Timers;

    //미디어 관련 라이브러리

    using System.Media;

    //TTS 

    using Microsoft.Speech;

    using Microsoft.Speech.Synthesis;


    namespace ConsoleApplication_alarm

    {

        /*

         *  2017-02-03 일 제작

         *  1. 미디어파일을 컴파일 하면서 같이 컴파일은 불가한지,?

         *  2. 가능하다면 방법 

         *  3. 불가능하다면 어떻게 처리하는지?

         *  4. 미디어파일이 현재 재생중인지 , 일시정지인지, 중지했는지 알 수 있는 방법이 궁금

         *  5. 아아 텍스트를 음성으로 읽어주기가 가능한가??  --> TTS 사용

         *  6. 콘솔에서 붙여넣기 가능하게... 불편해서..ㅎㅎ

         *  ---

         *  2가지. 

         

        */

        class Program

        {

            //전역변수 설정..

            private static Timer aTimer;

            private static Timer aTimer2;

            public static String RingingTime = "";

            //public static SoundPlayer wp = new SoundPlayer("D:/Visual Studio 2015/Projects/ConsoleApplication_alarm/ConsoleApplication_alarm/media/alarm.wav");

            public static SoundPlayer wp = new SoundPlayer("../../media/alarm.wav");

            public static Boolean SoundPlayerFlag = false;

            public static Int64 SoundPlayerFlag2 = 0;

            //wav파일이 들어 있는 경로를 설정해주세요

            

            static void Main(string[] args)

            {

                Console.Title = "일어나세요~";            

                

                

                Console.WriteLine("yyyymmddHHmmss 형식 ");

                Console.WriteLine("알람시간을 입력해주세요. : ");

                String RequestTime = Console.ReadLine();

                //int dsfsdf = Console.Read();

                Console.WriteLine(RequestTime);

                //데이터 형식 검사  - 일단 패스..ㅋ

                RingingTime = RequestTime;

                //System.Threading.Thread.Sleep(3000);

              

                Console.WriteLine("---");

                //1초마다 반복

                aTimer = new System.Timers.Timer(1000);


                //1분마다 반복   -- 화면정리

                aTimer2 = new System.Timers.Timer(60000);


                // Hook up the Elapsed event for the timer.

                aTimer.Elapsed += OnTimedEvent;

                aTimer.Enabled = true;

                aTimer2.Elapsed += OnTimedEvent2;

                aTimer2.Enabled = true;



                //Console.WriteLine("프로그램을 종료하려면 아무키를 누르세요.");

                //Console.ReadLine();

                Console.WriteLine("프로그램을 종료하려면 아무키를 누르세요.");

                ProjectFinish();

                //Console.ReadKey();

               

          

            }


            private static void OnTimedEvent(Object source, ElapsedEventArgs e)

            {


                //Console.WriteLine("The Elapsed event was raised at {0}", e.ToString);

                String NowTime = DateTime.Now.ToString("yyyyMMddHHmmss");

                //String NowTime = "2";

                Console.WriteLine("현재시각 :" + NowTime +" 알람시각 :"+ RingingTime);

                if (Convert.ToInt64(NowTime.ToString()) > Convert.ToInt64(RingingTime.ToString()))

                {


                    //Console.Beep();

                    //소리재생을 위해 namespace를 추가해 줍니다.

                    if (SoundPlayerFlag2 + 2 < Convert.ToInt64(NowTime.ToString()))

                    {

                        Console.WriteLine("FLAG FALSE");

                        SoundPlayerFlag = false;

                    }

                    if (SoundPlayerFlag == false)

                    {

                        Console.WriteLine("울어라..");

                        SoundPlayerFlag = true;

                        SoundPlayerFlag2 = Convert.ToInt64(NowTime);

                        //wp.PlaySync();

                        SpeechSynthesizer ts = new SpeechSynthesizer();

                        //System.Threading.Thread.Sleep(3000);

                        // 보이스를 선택하지 않아도 처리됨

                        //ts.SelectVoice("Microsoft Server Speech Text to Speech Voice (ko-KR, Heami)");

                        ts.SetOutputToDefaultAudioDevice();

                        ts.Speak("일어나세요 일어날 시간입니다.");


                    }

                    

                }

            }



            private static void OnTimedEvent2(Object source, ElapsedEventArgs e)

            {


                Console.Clear();

            }


            public static void ProjectFinish()

            {

                //Console.WriteLine("프로그램을 종료하려면 아무키를 누르세요.");

                ConsoleKeyInfo cki;

                cki = Console.ReadKey(true);

                switch (cki.Key)

                {

                    /*

                    case ConsoleKey.Enter:


                        Console.WriteLine("3초후 종료됩니다.");

                        

                        //타이머 종료?

                        aTimer.Enabled = false;

                        wp.Stop();


                        System.Threading.Thread.Sleep(3000);

                        return;

                        */

                    default:

                        //그 이외의 키 눌렀을때 반응


                        Console.WriteLine("3초후 종료됩니다.");


                        //타이머 종료?

                        aTimer.Enabled = false;

                        //wp.Stop();


                        System.Threading.Thread.Sleep(3000);

                        Console.WriteLine("---");

                        return;

                        


                        //return;

                }

            }

        }

    }



    //====================================================


    일단, 프로그램 소스는 저게 전부입니다;;;


    나중에 보면 얼마나 쪽팔릴까???




    exe 파일과 alarm.wav 파일입니다.


    일어나세요.exe





    반응형

    'C#' 카테고리의 다른 글

    C# microsoft.mshtml.dll DOWNLOAD  (0) 2017.02.04
    C# SHDocVw.dll download  (0) 2017.02.04
    9. C# Console - TTS 서비스 이용하기.  (1) 2017.02.04
    8. C# 상수(데이터 타입)  (0) 2017.02.01
    7. C#배포시 주의사항  (0) 2017.01.28

    댓글

Designed by Tistory.