Click here to Skip to main content
15,663,399 members
Articles / Programming Languages / C#
Posted 19 Oct 2012


53 bookmarked

Shut Down, Restart, Log off, Lock, Hibernate or Sleep Your Computer in C#

Rate me:
Please Sign up or sign in to vote.
4.94/5 (25 votes)
1 Dec 2014CPOL
A tip about how to shut down, restart, log off, lock, hibernate or sleep your computer in C#.


In this tip, I'll tell you how to shut down, restart, log off or lock your computer in C#.

Using the Code

First, add this using namespace statements:

using System.Diagnostics;
using System.Runtime.InteropServices; 

To shut down your computer, use this code:

Process.Start("shutdown","/s /t 0");    // starts the shutdown application 
                                        // the argument /s is to shut down the computer
                                        // the argument /t 0 is to tell the process that 
                                        // the specified operation needs to be completed 
                                        // after 0 seconds

To restart your computer, use this code:

"/r /t 0"); // the argument /r is to restart the computer

To log off, add this extern method to your class:

public static extern bool ExitWindowsEx(uint uFlags, uint dwReason);

Then, to log off, invoke the method:


To lock your computer, add this extern method to your class:

public static extern void LockWorkStation();

Then, to lock, invoke the method:


To put your computer in Hibernate or Sleep, you need the same DllImport statement for them. Thanks to Virender Prajapati for suggesting to add these!

[DllImport("PowrProf.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern bool SetSuspendState(bool hiberate, bool forceCritical, bool disableWakeEvent);

To bring your computer into Hibernate:

SetSuspendState(true, true, true);

And to bring it into sleep:

SetSuspendState(false, true, true);


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
Europe Europe
Also known as ProgramFOX. I like programming, playing chess and astronomy. Administrator of Chess Variants Training[^].

Find me on:

Comments and Discussions

QuestionThanks so much :) Pin
Ertuğrul Baran13-May-22 4:01
Ertuğrul Baran13-May-22 4:01 
QuestionInteresting, what about reverse ? Pin
Gluups12-Jul-19 6:24
Gluups12-Jul-19 6:24 
AnswerRe: Interesting, what about reverse ? Pin
Thomas Daniels12-Jul-19 6:43
mentorThomas Daniels12-Jul-19 6:43 
You can probably do it from a Service: ServiceBase.OnPowerEvent(PowerBroadcastStatus) Method (System.ServiceProcess) | Microsoft Docs[^]
GeneralRe: Interesting, what about reverse ? Pin
Gluups15-Jul-19 23:09
Gluups15-Jul-19 23:09 
Questionsafe mode? Pin
Радослав Ненчовски30-Nov-17 18:29
Радослав Ненчовски30-Nov-17 18:29 
AnswerRe: safe mode? Pin
Thomas Daniels2-Dec-17 3:34
mentorThomas Daniels2-Dec-17 3:34 
QuestionOther options Pin
Yves Goergen1-Mar-16 10:27
Yves Goergen1-Mar-16 10:27 
QuestionThanks. Pin
tinychi15-Jan-16 19:33
tinychi15-Jan-16 19:33 
AnswerRe: Thanks. Pin
Thomas Daniels15-Jan-16 19:37
mentorThomas Daniels15-Jan-16 19:37 
QuestionHibernate Condition (My vote of 5 for simplicity) Pin
Vekool_Coder23-Sep-15 19:02
Vekool_Coder23-Sep-15 19:02 
GeneralMy vote of 5 Pin
Robert J. Good2-Dec-14 12:05
professionalRobert J. Good2-Dec-14 12:05 
GeneralRe: My vote of 5 Pin
Thomas Daniels3-Dec-14 4:30
mentorThomas Daniels3-Dec-14 4:30 
SuggestionYou can add hibernate and sleep options also Pin
Virender Prajapati30-Nov-14 20:07
professionalVirender Prajapati30-Nov-14 20:07 
GeneralRe: You can add hibernate and sleep options also Pin
Thomas Daniels1-Dec-14 5:43
mentorThomas Daniels1-Dec-14 5:43 
Question+5 vote Pin
Meher Khan9-Aug-14 23:20
professionalMeher Khan9-Aug-14 23:20 
AnswerRe: +5 vote Pin
Thomas Daniels16-Aug-14 23:32
mentorThomas Daniels16-Aug-14 23:32 
GeneralMy vote of 5 Pin
Gun Gun Febrianza23-Oct-12 21:27
Gun Gun Febrianza23-Oct-12 21:27 
QuestionHello Pin
Gun Gun Febrianza23-Oct-12 21:26
Gun Gun Febrianza23-Oct-12 21:26 
AnswerRe: Hello Pin
Thomas Daniels24-Oct-12 2:05
mentorThomas Daniels24-Oct-12 2:05 
GeneralRe: Hello Pin
Gun Gun Febrianza24-Oct-12 5:18
Gun Gun Febrianza24-Oct-12 5:18 
GeneralRe: Hello Pin
Thomas Daniels24-Oct-12 5:21
mentorThomas Daniels24-Oct-12 5:21 
GeneralRe: Hello Pin
Gun Gun Febrianza24-Oct-12 5:25
Gun Gun Febrianza24-Oct-12 5:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.