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

.

Suspends 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 bool 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:

C#

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 bool 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