写个调用shutdown完成定时关机的小软件。执行如下代码:
        private void btn_ok_Click(object sender, EventArgs e)
        {
            DateTime dt1 = DateTime.Parse(num_year.Value + "-" + num_month.Value + "-" + num_day.Value + " " + num_hour.Value + ":" + num_minute.Value + ":" + num_second.Value);            DateTime dt2 = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd H:m:s"));            TimeSpan ts = dt1 - dt2;            Cmd("-s -t " + (int)ts.TotalSeconds);
        }        private static void Cmd(string command)
        {
            ProcessStartInfo psInfo = new ProcessStartInfo();            psInfo.FileName = "cmd";
            psInfo.Arguments = "/c shutdown " + command;
            psInfo.CreateNoWindow = true;            Process p = Process.Start(psInfo);
            p.Close();
            p.Dispose();
        }命令没有执行成功,反而弹出了一个一样的窗体,很费解!
WinForm命令提示符Processshutdown

解决方案 »

  1.   


    private void button1_Click(object sender, EventArgs e)
            {
                DateTime shutdown = DateTime.Parse("2013/05/14 23:59");
                DateTime now = DateTime.Now;            TimeSpan time = shutdown - now;
                double sec = time.TotalSeconds;
                Cmd("-s -t " + (int)sec);
            }
    我写的测试 Cmd方法是LZ原封不动的 调用没有问题 LZ参考下
      

  2.   

    我只能在控制台程序里能正常调用。
    winform里换了很多种写法都不行!以前也用过,不会这样啊!搞不明白什么原因!郁闷
      

  3.   

    cmd窗体不是你想要的?
     psInfo.WindowStyle = ProcessWindowStyle.Hidden;
      

  4.   

    问题不是这个,我是想知道为什么会再次打开同一个窗体,而且cmd命令也没有执行成功。
      

  5.   

    换别的命令试了一下,发现只有shutdown 会出现重复打开窗体的情况。
    执行ping 命令的时候是正常的。
      

  6.   

    问题解决了!
    突然想到我的程序名字也是shutdown.exe,难怪会重复弹出窗体!
    改个名字就解决了!