报警前10秒执行命令

时间:2013-12-19 19:17:00

标签: c#

我正在开发一个允许我创建程序并为其提供任务的项目。现在我正在努力告诉它设置闹钟。报警功能运行良好,但我遇到了问题。当我设置闹钟时,我可以说"晚安"然后程序将我的显示器关闭进入睡眠模式。当闹钟响起时,我希望它在执行警报响起时发生的代码之前10或15秒钟将显示器重新打开。

以下是我的一些代码:

DateTime now = DateTime.Now;
string time = now.GetDateTimeFormats('t')[0];

if (time == Settings.Default.Alarm && Settings.Default.AClockEnbl == true)
{ 
    SetMonitorInState(MonitorState.MonitorStateOn); 
}
if (time == Settings.Default.Alarm && Settings.Default.AClockEnbl == true)
{ 
    //All other alarm code 
}

我希望第一个if语句告诉命令在Settings.Default.Alarm之前10秒发生

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果您现在向DateTime添加15秒并将其与闹钟时间进行比较,则可以使用它来打开显示器。

然后你现在可以执行剩下的代码(没有额外的15秒)等于闹钟时间。

如评论中所述,您需要与DateTime而不是字符串进行比较,并使用TimeSpan增加15秒。

答案 1 :(得分:0)

您可以使用TimeSpan来抵消日期:

beforeTime = now + TimeSpan.FromSeconds(15);

然后将Settings.Default.AlarmbeforeTime.GetDateTimeFormats('t')[0]进行比较,以打开显示器。

这就是说,尝试重构你的代码并摆脱这些字符串。如果你真的想要,可以使用DateTimeTimeSpan或ms以来的int,而不是字符串。