设计定时关机小程序
定时关机是比较实用的功能,如平时工作有时候需要下载资料、发送邮件、给朋友传递文件,但是人又不能在旁边一直等着下载完成,这个时候就可以预先估计一个关闭时间,设置好到时就自动关闭电脑,如图所示。
电脑定时关机小程序
实现思路
(1)通过DateTimePicker设置关机时间格式。
(2)设置时钟间隔刷新时间,每隔1秒执行一次检测代码。
(3)判断当前时间是否比预设时间小,如果满足则执行关闭电脑代码。
代码
private void Form1_Load(object sender, EventArgs e)
{
//设置时间选择控件格式为用户自定义
dateTimePicker1.Format = DateTimePickerFormat.Custom;
//设置时间选择控件自定义格式
dateTimePicker1.CustomFormat = "yyyy-MM-dd hh:mm:ss";
//设置当前时间为初始时间
dateTimePicker1.Value = DateTime.Now;
//设置Timer每隔1秒执行一次
timer1.Interval = 1000;
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "开始")
{
button1.Text = "停止";
//启动时钟
timer1.Start();
}
else
{
button1.Text = "开始";
//关闭时钟
timer1.Stop();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
//当前时间大于结束时间,执行关机命令
if (DateTime.Now > dateTimePicker1.Value)
{
//实例化进程类对象
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
//启动cmd命令行对象
myProcess.StartInfo.FileName = "cmd.exe";
//配置进程设置
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
//执行关机命令
myProcess.StandardInput.WriteLine("shutdown -s -t 5");
timer1.Stop();
}
else
{
//如果没有结束,实时显示当前剩余时间
TimeSpan ts = dateTimePicker1.Value - DateTime.Now;
label1.Text = "剩余"+ts.Hours+"小时"+ts.Minutes+"分钟"+ts.Seconds+"秒以后关机";
}
}
这里使用了Process进程类,进程类的命名空间是System.Diagnostics,以上核心代码中进程执行命令的代码可以用在很多需要程序调用cmd命令的程序中。“shutdown -s -t 5”命令中shutdown是关机命令,“–s”表示关机,“-t 1”表示间隔特定时间关机,这里设置的是5秒以后关机。