• C#实现控制Windows系统关机、重启和注销的方法


    shutdown命令的参数:

    shutdown.exe -s:关机
    shutdown.exe -r:关机并重启
    shutdown.exe -l:注销当前用户

    shutdown.exe -s -t 时间:设置关机倒计时
    shutdown.exe -h:休眠
    shutdown.exe -t 时间:设置关机倒计时。默认值是 30 秒。
    shutdown.exe -a:取消关机
    shutdown.exe -f:强行关闭应用程序而没有警告
    shutdown.exe -m 计算机名:控制远程计算机
    shutdown.exe -i:显示“远程关机”图形用户界面,但必须是Shutdown的第一个参数
    shutdown.exe -c "消息内容":输入关机对话框中的消息内容
    shutdown.exe -d [u][p]:xx:yy :列出系统关闭的原因代码:u 是用户代码 ,p 是一个计划的关闭代码 ,xx 是一个主要原因代码(小于 256 的正整数) ,yy 是一个次要原因代码(小于 65536 的正整数)

    比如你的电脑要在12:00关机,可以选择“开始→运行”,输入“at 12:00 Shutdown -s",这样,到了12点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。
    如果你想以倒计时的方式关机,可以输入 “Shutdown.exe -s -t 3600",这里表示60分钟后自动关机,“3600"代表60分钟。
    一键关机:
    1、首先在桌面的空白处单击鼠标右键,新建一个“快捷方式”。
    2、在创建快捷方式的“命令行”中输入以下的指令:
    “shutdown –s –t 0 ”。(在windows98按此输入“C:windowsRUNDLL32.EXE user,ExitWindows”。)
    3、按着鼠标选择“下一步”,在快捷方式的名称栏中输入“一键关机”或其他自己喜欢的名称。
    4、之后,你就会在桌面见到一个名为“一键关机”的快捷方式图标,在该图标上单击鼠标右键,选择“属性”,再进入“快捷方式”页,然后在“快速键一栏内随便按选一个功能键(如F1-F12)。建议大家最好选一个平时不常用的功能键,最后按确定退出即可。

    Windows系统通过一个名为shutdown.exe的程序来完成关机操作(位置WindowsSystem32下),一般情况下Windows系统的关机都可以由关机程序 shutdown.exe来实现的,关机的时候调用shutdown.exe。由此可知要阻止强行关机就是要取消对shutdown.exe的调用。

    使用C#代码实现控制Windows系统关机、重启和注销的方法,使用.NET和C#.NET,我们可以对当前PC执行关机,重启,注销操作,
    .NET Framework中,有一个命名空间System.Diagnostics具有所需的类和方法,从当前PC上运行.NET应用程序来执行这些操作 。一般使用System.Diagnostics.Process.Start()方法来启动shutdown.exe程序。
    下面是一个winform程序说明,使用按钮来执行关机,重启和注销。

    //关机 和 计时关机
    private void btnShutDown_Click(object sender, EventArgs e)
    {
    if (checkBox1.Checked)
    {
    if (MessageBox.Show("将要设定计划关机,是否确认操作?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {
    decimal decl = numericUpDown1.Value * 3600 + numericUpDown2.Value * 60 + numericUpDown3.Value;
    string str = decl.ToString();
    Process.Start("shutdown.exe", "-s -t " + str);//计时关机
    }
    }
    else
    {
    if (MessageBox.Show("是否确认关机?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {
    Process.Start("shutdown.exe", "-s");//关机
    //Process.Start("shutdown.exe", "-s -t xx");
    }
    }
    }
    //重启
    private void butRestar_Click(object sender, EventArgs e)
    {
    if (MessageBox.Show("是否确认重启?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {
    Process.Start("shutdown.exe", "-r");//重启
    Process.Start("shutdown.exe", "-r -t 10");
    }
    }
    //注销
    private void butLogOff_Click(object sender, EventArgs e)
    {
    if (MessageBox.Show("是否确认注销?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    Process.Start("shutdown.exe", "-l");//注销
    }

    原文链接:https://www.cnblogs.com/xifengyeluo/p/5914883.html

    复制代码
     1         //关机 和 计时关机
     2         private void btnShutDown_Click(object sender, EventArgs e)
     3         {
     4             if (checkBox1.Checked)
     5             {
     6                 if (MessageBox.Show("将要设定计划关机,是否确认操作?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
     7                 {
     8                     decimal decl = numericUpDown1.Value * 3600 + numericUpDown2.Value * 60 + numericUpDown3.Value;
     9                     string str = decl.ToString();
    10                     Process.Start("shutdown.exe", "-s -t " + str);//计时关机
    11                 }
    12             }
    13             else
    14             {
    15                 if (MessageBox.Show("是否确认关机?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    16                 {
    17                     Process.Start("shutdown.exe", "-s");//关机
    18                     //Process.Start("shutdown.exe", "-s -t xx");
    19                 }
    20             }
    21         }
    22         //重启
    23         private void butRestar_Click(object sender, EventArgs e)
    24         {
    25             if (MessageBox.Show("是否确认重启?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    26             {
    27                 Process.Start("shutdown.exe", "-r");//重启
    28                 Process.Start("shutdown.exe", "-r -t 10");
    29             }
    30         }
    31         //注销
    32         private void butLogOff_Click(object sender, EventArgs e)
    33         {
    34             if (MessageBox.Show("是否确认注销?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    35                 Process.Start("shutdown.exe", "-l");//注销
    36         }
    37 
    38 
    39 
    40 
    41 
    42  
    复制代码
  • 相关阅读:
    【基于mini2440开发板的交叉编译环境及内核树配置.
    linux 模块编译步骤(原)
    鸟哥的linux私房菜
    ios消息机制
    初学者必学文档:Objective-C语法入门(1)
    oc基础知识
    ios 人魔七七
    Usaco Open09 Gold
    USACO JAN 2012 Bronze
    USACO·2012·Feb Bronze
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/9001792.html
Copyright © 2020-2023  润新知