SetSuspendState (powrprof)
Last changed: zkonstantin3@gmail.com-86.57.255.92

.

Suspendss the current machine.

If hibernate = true, the system hibernates.

If hibernate = false, the system enters a standby state.

C# Signature:

[DllImport ("Powrprof.dll", SetLastError = true)]
static extern uint SetSuspendState (bool hibernate, bool forceCritical, bool disableWakeEvent);

VB Signature:

Declare Function SetSuspendState Lib "powrprof.dll" (ByVal Hibernate As Boolean, ByVal ForceCritical As Boolean, ByVal DisableWakeEvent As Boolean) As Boolean

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    using System.Runtime.InteropServices;

    namespace Sleeper
    {
        class Program
        {
            /// <summary>
            /// Suspends the system by shutting power down. Depending on the Hibernate parameter, the system either enters a suspend (sleep) state or hibernation (S4).
            /// </summary>
            /// <param name="hibernate">If this parameter is TRUE, the system hibernates. If the parameter is FALSE, the system is suspended.</param>
            /// <param name="forceCritical">Windows Server 2003, Windows XP, and Windows 2000:  If this parameter is TRUE,
            /// the system suspends operation immediately; if it is FALSE, the system broadcasts a PBT_APMQUERYSUSPEND event to each
            /// application to request permission to suspend operation.</param>
            /// <param name="disableWakeEvent">If this parameter is TRUE, the system disables all wake events. If the parameter is FALSE, any system wake events remain enabled.</param>
            /// <returns>If the function succeeds, the return value is true.</returns>
            /// <remarks>See http://msdn.microsoft.com/en-us/library/aa373201(VS.85).aspx</remarks>
            [DllImport("Powrprof.dll", SetLastError = true)]
            static extern uint SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);

            static void Main(string[] args)
            {
                // Sleeps the machine
                SetSuspendState(false, false, false);
            }
        }
    }

VB.Net

    Public Class Form1

        Inherits System.Windows.Forms.Form

        'SetSuspendState will put the PC in to a standby mode
        Private Declare Function SetSuspendState Lib "powrprof.dll" (ByVal Hibernate As Boolean, ByVal ForceCritical As Boolean, _
        ByVal DisableWakeEvent As Boolean) As Boolean

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'SetSuspendState Example
        '*************************************************************************************************
        'SetSuspendState(False, False, False)
        '*************************************************************************************************

        End

        End Sub

Alternative Managed API:

.Net 2.0 provides this managed method with identical arguments:

VB.net example 2.0 , .Net 3.5

    Application.SetSuspendState(PowerState.Hibernate, False, False)
    'Or
    Application.SetSuspendState(PowerState.Suspend, False, False)

Public Shared Function SetSuspendState(ByVal state As System.Windows.Forms.PowerState, ByVal force As Boolean, ByVal disableWakeEvent As Boolean) As Boolean

     Member of System.Windows.Forms.Application

Summary:

Suspends or hibernates the system, or requests that the system be suspended or hibernated.

Parameters:

state: A System.Windows.Forms.PowerState indicating the power activity mode to which to transition.

force: true to force the suspended mode immediately; false to cause Windows to send a suspend request to every application.

disableWakeEvent: true to disable restoring the system's power status to active on a wake event, false to enable restoring the system's power status to active on a wake event.

Return Values:

true if the system is being suspended, otherwise, false.

Documentation