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 AutoCloseComputer
{
public partial class Form1 : Form
{
public Form1()
{ InitializeComponent(); //设置默认时间为当前时间
nud_hour.Value = Convert.ToDecimal(DateTime.Now.Hour);
nud_min.Value = Convert.ToDecimal(DateTime.Now.Minute); txt_sencods.Text = ""; //设置默认时间为10*60秒 } /// <summary>
/// 启动定时关机程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCloseComputer_Click(object sender, EventArgs e)
{
lab_result.Text = ""; string str = txt_sencods.Text.Trim();
if (string.IsNullOrEmpty(str))
{
lab_result.Text = "时间不能为空";
return;
} int seconds = ;
if (int.TryParse(str, out seconds))
{
OperateComputer("shutdown -s -t " + seconds);
}
else
{
lab_result.Text = "时间格式只能输入数字";
}
} /// <summary>
/// 取消关机命令
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCancelClose_Click(object sender, EventArgs e)
{
OperateComputer("shutdown -a");
} /// <summary>
/// 操作电脑命令
/// </summary>
/// <param name="command"></param>
private void OperateComputer(string command)
{
var startInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
var myProcess = new System.Diagnostics.Process();
myProcess.StartInfo = startInfo;
myProcess.Start();
myProcess.StandardInput.WriteLine(command);
} /// <summary>
/// 指定时间关机
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTimeClose_Click(object sender, EventArgs e)
{
int hour = Convert.ToInt32(nud_hour.Value);
int min = Convert.ToInt32(nud_min.Value); DateTime closedt = DateTime.Now; //当时间小于当前时认为是第二天的时间
if(hour<DateTime.Now.Hour)
{
string strdt = DateTime.Now.AddDays(1D).ToString("yyyy-MM-dd") + " " + hour.ToString().PadLeft(,'') + ":" + min.ToString().PadLeft(,'');
closedt = Convert.ToDateTime(strdt); }else
{
string strdt = DateTime.Now.ToString("yyyy-MM-dd") + " " + hour.ToString().PadLeft(, '') + ":" + min.ToString().PadLeft(, '');
closedt = Convert.ToDateTime(strdt);
}
//计算出时间差
int total = Convert.ToInt32((closedt - DateTime.Now).TotalSeconds);
OperateComputer("shutdown -s -t " + total); //一下命令没有效果
//string command = "at " + hour + ":" + min + " shutdown -s";
//OperateComputer(command); } }
}

此程序是VS2013编写的。

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

C# 简单的定时关机的更多相关文章

  1. 利用DOS批处理实现定时关机操作

    10月1放假回来,寝室晚上10:30就停电了,最无法让人理解的是第二天早上8:00才来电.原来晚上电脑都是不关机的,开着WiFi一直到天亮,可是现在不行了,电脑如果一直开着第二天早上起来电脑肯定没电, ...

  2. Linux系统Shutdown命令定时关机详解

    转自:http://www.bootf.com/490.html Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执 ...

  3. XP的定时关机命令?

    Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows/System32文件夹中.如 果想让Windows 2000也实现相同的效果,能够把Shutdown.exe拷贝 ...

  4. Mac定时关机、重启、休眠命令行

    由于一些原因,需要在不上班的时间去连公司电脑来做一些事.所以公司电脑很少关机.但是在没多天没有关机以后电脑会变得很卡.所以现在每天早上去公司的第一件事情就是先重启一下电脑.人工重启,太不符合程序员的作 ...

  5. python制作电脑定时关机办公神器,另含其它两种方式,无需编程!

      小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好.   对身体 ...

  6. MFC入门(二)-- 提取输入框的字符串(定时关机的小程序)

    上篇文章已经让我们有了对于MFC最简单直观的认识,但貌似并无太大的交互性可言,而且其实也没有涉及到数据的交互,所以本文通过做一个时间可以调节的定时关机的Demo来演示. MFC入门(一)地址:http ...

  7. windows批处理定时关机

    2017-04-11 windows bat文件可以简化很多cmd命令,为我们提供很多方便.今天介绍定时关机的批处理代码实现: 我们知道windows下的定时关机可以通过shutdown命令实现,如果 ...

  8. python:基于tkinter的定时关机程

    本人使用python3 from tkinter import* import os from PIL import Image, ImageTk root=Tk() a=Label(root,tex ...

  9. 手机控制电脑定时关机,重启WiFi

    需求 晚上上床,电脑开着WiFi让手机上网.要么上床之前就给电脑设置定时关机:要么就电脑开通宵:要么就待会下来关电脑.这3种情况都非常不好,要么麻烦,要么浪费. 最无奈的是电脑刚开好WiFi,上床后才 ...

随机推荐

  1. Html5弹幕视频播放器插件

    Danmmu Player是一个具备弹幕功能的Html5视频播放器.我们在观看视频的时候,可以对视频发表自己的观点,当点击发送按钮后,发表的内容会在视频屏幕上以彩弹的形式发出,并做滚动展示动画效果,即 ...

  2. 查看hbase中的中文

    python: print '\xE4\xB8\xAD\xE5\x9B\xBD\xE7\x9A\x84\xE4\xB8\x8A\xE5\x8D\x88'.decode('utf-8')

  3. layui之初始化加分页重复请求问题解决

    layui框架中的page困扰我很久,一个页面初始化后并且分页,导致初始化渲染请求一次,分页再请求了一次,一个接口就重复请求了2次,通过不停的分析和测试,最终解决了这个问题. 基于JQ的ajax二次封 ...

  4. VS2012常用快捷键!

    Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+ ...

  5. tcp粘包解决

    import socket import hashlib import subprocess import struct phone = socket.socket(socket.AF_INET,so ...

  6. Java - 14 Java 日期时间

    java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...

  7. tomcat安全加固和规范

    tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐.不过,在默认配置下其存在一定的安全隐患,可被恶意攻击.以下是一些安全 ...

  8. MyBatis批量增删改查操作

      前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...

  9. leetcode 852. Peak Index in a Mountain Array

    Input: [0,1,0] Output: 1 Input: [0,2,1,0] Output: 1解: 比较数组中的i和i-1的大小,如果前一位大于后一位数字,前一位则是结果 let ans = ...

  10. Unity3D的断点调试功能

    断点调试功能可谓是程序员必备的功能了.Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调 试的.不过这个断点调试功能只限于使用Unity3D自带的Mono ...