日期:2014-05-17  浏览次数:20814 次

C# Winform中编写自动关机程序无效果
    using System.Diagnostics; //导包

    Process p = new Process();//实例化一个独立进程
            p.StartInfo.FileName = "cmd.exe";//进程打开的文件为Cmd
            p.StartInfo.UseShellExecute = false;//是否启动系统外壳选否
            p.StartInfo.RedirectStandardInput = true;//这是是否从StandardInput输入
            p.StartInfo.CreateNoWindow = true;//这里是启动程序是否显示窗体
            p.Start();//启动
            p.StandardInput.WriteLine("shutdown -s -t 10");//运行关机命令shutdown (-s)是关机 (-t)是延迟的时间 这里用秒计算 10就是10秒后关机
            p.StandardInput.WriteLine("exit");//退出cmd 

以上代码用VS新建个控制台应用程序能执行自动关机  但是新建个窗体  把以上代码放字loading事件里面 则运行无效果? 个人判断控制台应用程序是dos下运行的 命令可以直接运行  但窗体不是 需要先启动dos窗体  但是不知道怎么启动 求?

------解决方案--------------------
不用调用 cmd.exe。
------解决方案--------------------
亲测有效。测试环境win8 64位,winform程序,button按钮点击关机。
------解决方案--------------------
你检查一下是否有类似360等软件拦截了你的“非法操作”。
------解决方案--------------------
右键->run as administrator
------解决方案--------------------
http://hi.baidu.com/cg_nirvana/item/bfe41c9dbbc770de1f427157不用命令