【发布时间】:2017-02-14 09:11:51
【问题描述】:
我有一个想法,用 c# 构建一个具有以下功能的闹钟
- 显示当天的待办事项列表
- 播放所选歌曲列表中的歌曲
我已经完成的功能
- 显示待办事项列表
- 播放歌曲
-
在特定时间之间显示表格
private void Form1_Load(object sender, EventArgs e) { Timer MyTimer = new Timer(); MyTimer.Interval = (1 * 60 * 1000); // 1 mins MyTimer.Tick += new EventHandler(MyTimer_Tick); MyTimer.Start(); } private void MyTimer_Tick(object sender, EventArgs e) { WakeUpProcess(); } private void WakeUpProcess() { StreamReader CurrentAgenda = new StreamReader("C:/Users/Max/documents/visual studio 2015/Projects/Advanced_AlarmClock/Advanced_AlarmClock/File Resources/Todays Agenda.txt"); TimeSpan start = new TimeSpan(06, 50, 0); //10 o'clock TimeSpan end = new TimeSpan(07, 00, 0); //12 o'clock TimeSpan now = DateTime.Now.TimeOfDay; System.IO.StreamReader CurrentAgendaRaw = new System.IO.StreamReader("C:/Users/Max/documents/visual studio 2015/Projects/Advanced_AlarmClock/Advanced_AlarmClock/File Resources/Todays Agenda.txt"); string CurrentAgendaTxt = CurrentAgendaRaw.ReadToEnd(); if ((now > start) && (now < end)) { this.WindowState = FormWindowState.Normal; Output.Text = ("Good Morning Max" + Environment.NewLine + CurrentAgendaTxt); Process.Start("C:/Users/Max/Downloads/Juice Newton - Angel Of The Morning.mp3"); } }
但是,我需要一些解决方案来解决我所面临的问题。 - 每次满足时间要求时(6:50 到 7:00 之间),都会打开歌曲的新实例。我只想打开一个实例。 - 如果可能的话,有人可以帮助我如何让程序唤醒计算机。
谢谢你,马克西姆斯
【问题讨论】:
-
只是为了检查我是否理解正确。您检查“现在”是否在结束和开始之间的唯一原因是,当“滴答”在该时间之间命中时,您想执行该代码一次。我说的对吗?
-
是的,我想不出其他办法
-
像Quartz.NET 一样使用库来为您处理时间,它使警报等事情变得容易100 倍。
-
很多其他方法可以做你正在做的事情,有些可能更好,但要回答你的问题:
MyTimer.Tick -= MyTimer_Tick;删除处理程序。 -
另一种选择是在此程序中执行您需要的操作,并使用 Windows 任务计划程序安排 .exe。