Please use the following code to shutdown your machine:
System.Diagnostics.Process.Start("shutdown.exe", "-r -t 0");
To see all of the arguments of the shutdown.exe
Please open up the command prompt (start > Run >“cmd”) and write the following command: shutdown /?
You should see something like this:
Usage: SHUTDOWN [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "c
omment"] [-d up:xx:yy]
No args Display this message (same as -?)
-i Display GUI interface, must be the first option
-l Log off (cannot be used with -m option)
-s Shutdown the computer
-r Shutdown and restart the computer
-a Abort a system shutdown
-m \\computername Remote computer to shutdown/restart/abort
-t xx Set timeout for shutdown to xx seconds
-c "comment" Shutdown comment (maximum of 127 characters)
-f Forces running applications to close without war
ning
-d [u][p]:xx:yy The reason code for the shutdown
u is the user code
p is a planned shutdown code
xx is the major reason code (positive integer le
ss than 256)
yy is the minor reason code (positive integer le
ss than 65536)
P.S. See also this article:
Shut Down, Restart, Log off or Lock your computer in C#[
^]