[C#] 21일차 - 151. WindowsMediaPlayer를 이용한 소리나는 알람시계C#/C#200제2021. 2. 25. 21:06
Table of Contents
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WMPLib; // WindowsMediaPlayer
namespace A150_TabControl
{
public partial class Form1 : Form
{
private Timer myTimer = new Timer();
private DateTime dDay; // 알람 날짜
private DateTime tTime; // 알람 시간
private bool setAlarm; // 알람
WindowsMediaPlayer myPlayer = new WindowsMediaPlayer();
public Form1()
{
InitializeComponent();
// 알람이 설정되어 있지 않음으로 회색처라
lblAlarm.ForeColor = Color.Gray;
lblAlarmSet.ForeColor = Color.Gray;
// timePicker 포맷설정
timePicker.Format = DateTimePickerFormat.Custom;
timePicker.CustomFormat = "tt hh:mm";
// 타이머 1초에 한번씩 작동
myTimer.Interval = 1000;
myTimer.Tick += MyTimer_Tick;
myTimer.Start();
// 처음실행될때 두번째 탭 페이지가 표시되게 함
tabControl1.SelectedTab = tabPage2;
}
// 타이머 메소드
private void MyTimer_Tick(object sender, EventArgs e)
{
DateTime cTime = DateTime.Now;
lblDate.Text = cTime.ToShortDateString();
lblTime.Text = cTime.ToLongTimeString();
// 알람이 세팅되어있다면
if(setAlarm == true)
{
// 설정한 알람과 현재 시간이 동일할 때 알람을 울림
if(dDay == DateTime.Today && cTime.Hour == tTime.Hour && cTime.Minute == tTime.Minute)
{
setAlarm = false;
myPlayer.URL = @"filepath\preview.mp3";
myPlayer.controls.play();
}
}
}
// 설정 버튼을 클릭했을 때
private void btnSet_Click_1(object sender, EventArgs e)
{
// 날짜와 시간을 Parse하는 부분
dDay = DateTime.Parse(datePicker.Text);
tTime = DateTime.Parse(timePicker.Text);
setAlarm = true;
lblAlarmSet.ForeColor = Color.Red;
lblAlarm.ForeColor = Color.Blue;
lblAlarm.Text = "알람 : " + dDay.ToShortTimeString() + " " + tTime.ToLongTimeString();
tabControl1.SelectedTab = tabPage2;
}
// 해제 버튼을 클릭했을 때
private void btnReset_Click(object sender, EventArgs e)
{
setAlarm = false;
lblAlarmSet.ForeColor = Color.Gray;
lblAlarm.ForeColor = Color.Gray;
lblAlarm.Text = "알람 : ";
tabControl1.SelectedTab = tabPage2;
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 21일차 - 153. OpenFileDialog를 이용해서 메모장에서 파일열기 (0) | 2021.02.25 |
---|---|
[C#] 21일차 - 152. WMP 컨트롤을 이용한 동영상 플레이어 (0) | 2021.02.25 |
[C#] 21일차 - 150. TabControl을 사용한 디지털 알람시계 (0) | 2021.02.25 |
[C#] 20일차 - 149. DateTimePicker를 이용한 날짜 계산기 (0) | 2021.02.23 |
[C#] 20일차 - 148. TrackBar와 ProgressBar (0) | 2021.02.23 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!