C# 简单的定时关机

Posted 折翼的飞鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 简单的定时关机相关的知识,希望对你有一定的参考价值。

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 
 10 namespace AutoCloseComputer
 11 {
 12     public partial class Form1 : Form
 13     {
 14         public Form1()
 15         { 
 16 
 17             InitializeComponent();
 18             
 19             //设置默认时间为当前时间
 20             nud_hour.Value = Convert.ToDecimal(DateTime.Now.Hour);
 21             nud_min.Value = Convert.ToDecimal(DateTime.Now.Minute);
 22 
 23             txt_sencods.Text = "600";  //设置默认时间为10*60秒
 24             
 25         }
 26 
 27         /// <summary>
 28         /// 启动定时关机程序
 29         /// </summary>
 30         /// <param name="sender"></param>
 31         /// <param name="e"></param>
 32         private void btnCloseComputer_Click(object sender, EventArgs e)
 33         {
 34             lab_result.Text = "";
 35 
 36             string str = txt_sencods.Text.Trim();
 37             if (string.IsNullOrEmpty(str))
 38             {
 39                 lab_result.Text = "时间不能为空";
 40                 return;
 41             }
 42 
 43             int seconds = 0;
 44             if (int.TryParse(str, out seconds))
 45             { 
 46                 OperateComputer("shutdown -s -t " + seconds); 
 47             }
 48             else
 49             {
 50                 lab_result.Text = "时间格式只能输入数字";
 51             }
 52         }
 53 
 54         /// <summary>
 55         /// 取消关机命令
 56         /// </summary>
 57         /// <param name="sender"></param>
 58         /// <param name="e"></param>
 59         private void btnCancelClose_Click(object sender, EventArgs e)
 60         {
 61             OperateComputer("shutdown -a"); 
 62         }
 63 
 64 
 65         /// <summary>
 66         /// 操作电脑命令
 67         /// </summary>
 68         /// <param name="command"></param>
 69         private void OperateComputer(string command)
 70         {
 71             var startInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe");
 72             startInfo.UseShellExecute = false;
 73             startInfo.RedirectStandardInput = true;
 74             startInfo.RedirectStandardOutput = true;
 75             startInfo.RedirectStandardError = true;
 76             startInfo.CreateNoWindow = true;
 77             var myProcess = new System.Diagnostics.Process();
 78             myProcess.StartInfo = startInfo;
 79             myProcess.Start();
 80             myProcess.StandardInput.WriteLine(command);
 81         }
 82 
 83 
 84         /// <summary>
 85         /// 指定时间关机
 86         /// </summary>
 87         /// <param name="sender"></param>
 88         /// <param name="e"></param>
 89         private void btnTimeClose_Click(object sender, EventArgs e)
 90         {
 91             int hour = Convert.ToInt32(nud_hour.Value);
 92             int min = Convert.ToInt32(nud_min.Value);
 93 
 94             DateTime closedt = DateTime.Now;
 95 
 96             //当时间小于当前时认为是第二天的时间
 97             if(hour<DateTime.Now.Hour)
 98             {
 99                 string strdt = DateTime.Now.AddDays(1D).ToString("yyyy-MM-dd") + " " + hour.ToString().PadLeft(2,\'0\') + ":" + min.ToString().PadLeft(2,\'0\');
100                 closedt = Convert.ToDateTime(strdt);
101 
102             }else
103             {
104                 string strdt = DateTime.Now.ToString("yyyy-MM-dd") + " " + hour.ToString().PadLeft(2, \'0\') + ":" + min.ToString().PadLeft(2, \'0\');
105                 closedt = Convert.ToDateTime(strdt);
106             }
107             //计算出时间差
108             int total = Convert.ToInt32((closedt - DateTime.Now).TotalSeconds);
109             OperateComputer("shutdown -s -t " + total);
110 
111             //一下命令没有效果
112             //string command = "at " + hour + ":" + min + " shutdown -s";
113             //OperateComputer(command); 
114 
115         }
116          
117     }
118 }

 

 

此程序是VS2013编写的。

提供程序的下载链接:https://pan.baidu.com/s/1slpGGsl

 

以上是关于C# 简单的定时关机的主要内容,如果未能解决你的问题,请参考以下文章

求一个C语言定时关机程序

怎样取消电脑的定时关机

win10电脑怎么设置定时关机

如何设置win 2003定时关机

win10定时关机怎么设置?

win10定时关机