Here a quick guide to show you how to reboot a windows computer from C# Its actually really very simple.

With the following code you can create your own User32 class to call windows api directly.

public static class User32
    {
        [DllImport("user32.dll")]
        public static extern bool ExitWindowsEx(ExitWindowsFlags uFlag, UInt32 dwReserved);

        public static bool ExitWindowsEx(ExitWindowsFlags uFlag)
        {
            return ExitWindowsEx(uFlag, 0);
        }
    }

Note: you will also need 'using System.Runtime.InteropServices;' at the top of the C# file. You will probably also want to define all the options that are available to use with the call.

[Flags]
public enum ExitWindowsFlags {
    EWX_LOGOFF = 0,
    EWX_SHUTDOWN = 0x1,
    EWX_REBOOT = 0x2,
    EWX_FORCE = 0x4,
    EWX_POWEROFF = 0x8,
    EWX_FORCEIFHUNG = 0x10,
    EWX_RESTARTAPPS = 0x40
}

The rest is now really simple.

static void Main(string[] args)
{
    if (User32.ExitWindowsEx(ExitWindowsFlags.EWX_REBOOT) == false)
    {   
        Console.WriteLine("FAILED!");
    }
    else
    {
        Console.WriteLine("SUCCESS!");
    }
}


Did You find this page useful?

Yes No



Last Modified: 21 December 2016

Releated Posts


2011-10-27 - CSharp - Number Of Cores and Processors
2011-10-04 - CSharp - Thread Queue Example
2011-09-29 - CSharp - Background Thread / Task
2011-09-17 - CSharp - Lookup Hostname
2011-08-29 - CSharp - IsGuid
2011-08-29 - C Sharp - StopWatch, The high resolution timer
2011-08-26 - CSharp - Convert Between Meters and Feet
2011-08-23 - CSharp - ThreadPool and Windows Forms
2011-08-10 - C Sharp - MD5Sum / SHASum
2011-07-22 - CSharp - Fibonacci sum
2011-07-13 - CSharp - Palindrome
2011-07-11 - CSharp - The string Reverse
2011-07-10 - CSharp - Interviews FizzBuzz
2011-06-27 - CSharp - HowTo Parse a URL
2011-06-22 - CSharp - Extending any class
2011-06-13 - ASPNET - Login by username or email
2011-05-12 - CSharp - ASPNET Logoff
2011-03-07 - C Sharp - Windows Logoff
2011-03-02 - ASPNET - Dynamic Controls
2011-03-01 - C Sharp - Resize an image by size of height
2011-02-23 - C Sharp / MSSQL Get inserted value of NEWSEQUENTIALID()
2011-02-10 - CSharp - Wake on Lan (WOL) Packet
2011-02-10 - CSharp - Shutdown or reboot windows
2011-02-06 - C Sharp - Gridview Bound Yes No
2011-02-05 - MSSQL - Levenshtein
2011-01-30 - MSSQL - RegEx Support
2011-01-30 - MSSQL - Adding SHASum support
2011-01-30 - MSSQL - Enabling CLR Functions
2011-01-30 - MSSQL - Adding MD5 checksum support