设计定时关机小程序

定时关机是比较实用的功能,如平时工作有时候需要下载资料、发送邮件、给朋友传递文件,但是人又不能在旁边一直等着下载完成,这个时候就可以预先估计一个关闭时间,设置好到时就自动关闭电脑,如图所示。 

电脑定时关机小程序

实现思路

(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秒以后关机。

 

posted @ 2018-11-23 10:06  梦沁  阅读(728)  评论(0编辑  收藏  举报