C# 窗口实现定时关机系统

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mq_shouhug753951mq/article/details/48296227

看一下运行之后的效果图
这里写图片描述

看代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ShutDoneWindows
{
    public partial class ShutDone : Form
    {
        public ShutDone()
        {
            InitializeComponent();
        }

        private void menuItemExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void ShutDone_Load(object sender, EventArgs e)
        {
            this.timer1.Start();
            DateTime DT = System.DateTime.Now;
            string dt = System.DateTime.Now.ToString();
            txtDatatime.Text = dt;
        }

        private void btnHide_Click(object sender, EventArgs e)
        {
            this.Hide();
            this.notifyIcon1.Visible = true;
        }

        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = false;                    
        }

        private void btnShutDone_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("cmd.exe", "/cshutdown -s -t 0");
        }

        private void btnReLogin_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("cmd.exe", "/logoff 0");
        }

        private void btnReBoot_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("cmd.exe", "/shutdown -r 0");
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime objDatetime = System.DateTime.Now;
            string cData = objDatetime.ToLongDateString();
            string cTime = objDatetime.ToLongTimeString();
            this.txtDatatime.Text = cData + "" + cTime;
            if (this.chkStrat.Checked == true)
            {
                int Y = this.dtpCurrentDate.Value.Year;
                int M = this.dtpCurrentDate.Value.Month;
                int D = this.dtpCurrentDate.Value.Day;
                int H = this.dtpCurrentTime.Value.Hour;
                int Min = this.dtpCurrentTime.Value.Minute;
                int S = this.dtpCurrentTime.Value.Second;
                objDatetime = new DateTime(Y, M, D, H, Min, S);
                System.TimeSpan remain = objDatetime - System.DateTime.Now;
                double time = remain.TotalSeconds;
                if (time < 0)
                {
                    this.chkStrat.Checked = false;
                    MessageBox.Show("设定的定时时间必须大于当前时间");
                }
                else 
                {
                    if (time < 60 && this.rbtnOneMinute.Checked == true)
                    {
                        AwokeForm aw = new AwokeForm();
                        this.timer1.Stop();
                        this.Hide();
                        aw.Show();
                    }
                    if (time < 0 && this.rbtnNone.Checked == true)
                    {
                        System.Diagnostics.Process.Start("cmd.exe", "/cshutdown -s -t 0");

                    }
                }

            }
        }

        private void chkStrat_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void rbtnOneMinute_CheckedChanged(object sender, EventArgs e)
        {




        }

        private void rbtnNone_CheckedChanged(object sender, EventArgs e)
        {

        }
    }
}

窗口提醒的代码!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ShutDoneWindows
{
    public partial class AwokeForm : Form
    {
        public AwokeForm()
        {
            InitializeComponent();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            this.Close();            
        }

        private void AwokeForm_Load(object sender, EventArgs e)
        {
            this.timer1.Start();

            this.lblMessage.Text = "距离当前关机还有" +60+ "秒";

        }
        int max = 60;
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.max = max - 1;
            if (this.max == 0)
            {
                System.Diagnostics.Process.Start("cmd.exe", "/cshutdown -s -t 0");
                this.timer1.Stop();
            }
            else
            {
                this.lblMessage.Text = "距离当前关机还有" + this.max.ToString() + "秒";
            }
        }
    }
}
展开阅读全文

没有更多推荐了,返回首页