Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

SetSystemPowerState (coredll)
 

coredll is for smart devices, not desktop Windows. Therefore, this information only applies to code using the .NET Compact Framework. To see if information for SetSystemPowerState in other DLLs exists, click on Find References to the right.

.
Summary
Controls the overall device power state

C# Signature:

    [DllImport("coredll.dll", SetLastError=true)]
    static extern int SetSystemPowerState(string psState, int StateFlags, int Options);

VB Signature:

    Declare Function SetSystemPowerState Lib "Coredll" ( _
    ByVal psState As String, _
    ByVal StateFlags As Integer, _
    ByVal Options As Integer) As Integer

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

May be more effective at forcing the device off than holding it on.

Tips & Tricks:

Conversion table Win32 to .NET

This is a very handy table when you want to convert C++ to C# .NET using P/Invoke

Windows Data Type .NET Data Type
BOOL, BOOLEAN Boolean or Int32
BSTR String
BYTE Byte
CHAR Char
DOUBLE Double
DWORD/LPDWORD Int32 or UInt32
FLOAT Single
HANDLE (and all other handle types, such as HFONT and HMENU) IntPtr, UintPtr, or HandleRef
HRESULT Int32 or UInt32
INT Int32
LANGID Int16 or UInt16
LCID Int32 or UInt32
LONG Int32
LPARAM IntPtr, UintPtr, or Object
LPCSTR String
LPCTSTR String
LPCWSTR String
LPSTR String or StringBuilder*
LPTSTR String or StringBuilder
LPWSTR String or StringBuilder
LPVOID IntPtr, UintPtr, or Object
LRESULT IntPtr
SAFEARRAY .NET array type
SHORT Int16
TCHAR Char
UCHAR SByte
UINT Int32 or UInt32
ULONG Int32 or UInt32
VARIANT Object
VARIANT_BOOL Boolean
WCHAR Char
WORD Int16 or UInt16
WPARAM IntPtr, UintPtr, or Object

Sample Code (VB):

    Const POWER_STATE_ON As Integer = &H10000
    Const POWER_STATE_OFF As Integer = &H20000
    Const POWER_STATE_SUSPEND As Integer = &H200000
    Const POWER_FORCE As Integer = 4096
    Const POWER_STATE_RESET as Integer = &H800000 'this wil make the device soft reset! :)
    Const POWER_STATE_RESET as Integer = 0x800000 'this wil make the device soft reset! :)

    Public Sub ForcePower()
    SetSystemPowerState(Nothing, POWER_STATE_ON, POWER_FORCE)
    End Sub

    Public Sub SoftReset()
    SetSystemPowerState(Nothing, POWER_STATE_RESET, POWER_FORCE)
    End Sub

Sample Code (C#):

    const int POWER_STATE_ON = 0x00010000;
    const int POWER_STATE_OFF = 0x00020000;
    const int POWER_STATE_SUSPEND = 0x00200000;
    const int POWER_FORCE = 4096;
    const int POWER_FORCE As Integer = 4096;
    const int POWER_STATE_RESET = 0x00800000;

    public int ForcePower()
    {
            return SetSystemPowerState(null, POWER_STATE_ON, POWER_FORCE);
    }

    public int SoftReset()
    {
            // Though I guess this will never really return anything
        return SetSystemPowerState(null, POWER_STATE_RESET, POWER_FORCE);
    }

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions