C#,定时自动关机

一直想找一个可以自己实现定时自动关机的软件,辛辛苦苦在网上找了一个,结果搞了几次之后竟然要收费,闲来自己也写一个试试。
 
这是一个很小的winform应用,使用VS2008+.NET 3.5环境开发,要在XP系统且安装了.NET3.5的机器上才能使用,期待后续版本的升级。
 
本文着重介绍关机操作和定时的实现,其余部分不再详述。
-------------------------------
--AutoShutDown V1.0
-------------------------------
自动关机部分的实现:
Process proc = new Process();
proc.StartInfo.FileName = "cmd.exe";//start the command line
proc.StartInfo.UseShellExecute = false;//do not use shell mode instead by programme mode
proc.StartInfo.RedirectStandardError = true;//re-direct IO
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.CreateNoWindow = true;//do not creat a form
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
//BLANK is a const var with " "
string commandLine = String.Empty;
switch (option)
{
       case Program.OptionType.isCancel:
              commandLine += @"shutdown /a";
              break;
       case Program.OptionType.isLogoff:
              commandLine += @"shutdown /f /l /t" + BLANK + interval;
              break;
       case Program.OptionType.isRestart:
              commandLine += @"shutdown /f /r /t" + BLANK + interval;
               break;
       case Program.OptionType.isShutdown:
              commandLine += @"shutdown /f /s /t" + BLANK + interval;
              break;
       }
       proc.StandardInput.WriteLine(commandLine);
新建一个Process对象,启动命令行窗口,并使用不显示窗口的模式,然后标记命令行命令进行操作。
常用的命令行操作有:

-a or /a

Abort/取消所有shutdown操作

-l or /l

Log off

-r or /r

重新启动 restart

-s or /s

Shutdown 关闭计算机

-t or /t xx

xx秒后进行操作

-----------------------------------------------
winform定时器的实现:
使用timer控件的Tick事件来实现,事件代码如下。
private void timer_CountDown_Tick(object sender, EventArgs e)
{
      if ((intervalSeconds - secondsFlush) == 0)
     {
          timer_CountDown.Stop();
          toolStripStatusLabel_ShowText.Visible = false;
          toolStripStatusLabel_TimeLeft.Visible = false;
          ControlSpengding();
     }
     else
     {
          secondsFlush += 1;
          toolStripStatusLabel_TimeLeft.Text = (intervalSeconds - secondsFlush).ToString();
     }
}

转载于:https://www.cnblogs.com/skyshenwei/archive/2010/03/03/1677009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值