Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than coredll, prefix the name with the module name and a period.
GetSystemPowerStatusEx (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 GetSystemPowerStatusEx in other DLLs exists, click on Find References to the right.
.
C# Signature:
[DllImport("coredll.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.U4)]
public static extern int GetSystemPowerStatusEx2(SYSTEM_POWER_STATUS_EX2 pSystemPowerStatusEx2, [MarshalAs(UnmanagedType.U4), In] int dwLen, [MarshalAs(UnmanagedType.Bool), In] bool fUpdate);
VB Signature:
Declare Function GetSystemPowerStatusEx2 Lib "Coredll.dll" (TODO) As TODO
[DllImport("coredll.dll")]
static extern bool GetSystemPowerStatusEx(ref SYSTEM_POWER_STATUS_EX pStatus,
bool fUpdate);
VB .NET Signature:
Declare Function GetSystemPowerStatusEx Lib "coredll.dll" _
(<Out()> ByRef pStatus As SYSTEM_POWER_STATUS_EX, _
ByVal fUpdate As Boolean) As Boolean
The return is the size of the structure. It returns 0 if there was an error.
Tips & Tricks:
Please add some!
pStatus must be a valid object as values will be passed back in this structure. As the pointer to the object is not changed do not use the ref/out keywords in C#.
Sample Code:
SYSTEM_POWER_STATUS_EX2 SystemPowerStatusEx2 = new SYSTEM_POWER_STATUS_EX2();
if (GetSystemPowerStatusEx2(SystemPowerStatusEx2, Marshal.SizeOf(SystemPowerStatusEx2), true) > 0) {
//run some battery code
}
Tips & Tricks:
Please add some!
Sample Code:
public static byte GetBatteryLeftPercentage()
{
SYSTEM_POWER_STATUS_EX powerStatus = new SYSTEM_POWER_STATUS_EX();
Private Declare Function GetSystemPowerStatusEx Lib "coredll.dll" (ByRef pStatus As SYSTEM_POWER_STATUS_EX, ByVal fUpdate As Boolean) As Boolean
Private Structure SYSTEM_POWER_STATUS_EX
Dim ACLineStatus As Byte
Dim BatteryFlag As Byte
Dim BatteryLifePercent As Byte
Dim Reserved1 As Byte
Dim BatteryLifeTime As Int32
Dim BatteryFullLifeTime As Int32
Dim Reserved2 As Byte
Dim BatteryBackupFlag As Byte
Dim BackupBatteryLifePercent As Byte
Dim Reserved3 As Byte
Dim BackupBatteryLifeTime As Int32
Dim BackupBatteryFullLifeTime As Int32
End Structure
Public Function BatteryStrength() As Integer
Dim battStatus As SYSTEM_POWER_STATUS_EX
If GetSystemPowerStatusEx(battStatus, True) = True Then
Return CInt(battStatus.BatteryLifePercent)
Else
Return 0
End If
End Function
Alternative Managed API:
TODO
Class to retrieve the power settings from Coredll.GetSystemPowerStatusEx2
2/9/2010 3:51:53 AM - -194.6.192.244
This structure contains information about the power status of the system.
2/8/2008 8:34:26 AM - -12.30.230.138
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).