有没有办法从服务中重启Windows(Server 2008,Server 2012)?我试过了:
System.Diagnostics.Process.Start("cmd.exe /c shutdown -f -r -t 0")
无济于事。我在这里看过解决方案:
How to shut down the computer from C#
http://www.stackoverflow.com/questions/1215139/reboot-machine-from-a-c-wpf-app
并且机器不想重启。
当我从命令行运行命令时,它可以工作。
cmd.exe /c shutdown -f -r -t 0
甚至
shutdown -f -r -t 0
从服务中运行时没有任何反应。我甚至修改它来运行:
c:\\windows\\system32\\cmd.exe /c c:\\windows\\system32\\shutdown.exe -f -r -t 0
同样的结果,没有任何反应。再次,当我从命令行运行时,它正确地重新启动。
答案 0 :(得分:1)
我怀疑是因为窗口服务没有GUI ......它无法运行命令提示符。
查看win32 API解决方案......例如ExitWindowsEx()或InitiateSystemShutdown或关闭
答案 1 :(得分:1)
试试这个..
Process myPro = new Process()
myPro.StartInfo.FileName = "cmd.exe";
myPro.StartInfo.Arguments = “/c shutdown –f –r –t 0”;
myPro.StartInfo.UseShellExecute = false;
myPro.CreateNoWindow = true;
myPro.Start();
你的cmd.exe文件在哪里?如果它没有用完运行应用程序的同一目录?您可能需要提供指向cmd.exe文件的途径。
例如..
myPro.StartInfo.FileName = "c:\desktop\myStuff\cmd.exe";
希望有所帮助