using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace AZKI
  public partial class MainForm : Form
       // p/invoke signature
       [DllImport("coredll.dll", EntryPoint = "GetSystemPowerStatusEx2", SetLastError = true)]
       public extern static Int32 GetSystemPowerStatus(
                                                       ref PowerStatus powerStatus,
                                                       Int32 length,
                                                       Boolean update);

       //  SYSTEM_POWER_STATUS_EX2.ACLineStatus
       public enum ACLineStatus : byte
           Offline = 0,
           Online = 1,
           Unknown = 255,
       // managed version of the SYSTEM_POWER_STATUS_EX2 structure
       public struct PowerStatus
           public ACLineStatus ACLineState;
           public Byte BatteryFlag;
           public Byte BatteryLifePercent;
           public Byte Reserved1;
           public Int32 BatteryLifeTime;
           public Int32 BatteryFullLifeTime;
           public Byte Reserved2;
           public Byte BackupBatteryFlag;
           public Byte BackupBatteryLifePercent;
           public Byte Reserved3;
           public Int32 BackupBatteryLifeTime;
           public Int32 BackupBatteryFullLifeTime;
           public Int32 BatteryVoltage;
           public Int32 BatteryCurrent;
           public Int32 BatteryAverageCurrent;
           public Int32 BatteryAverageInterval;
           public Int32 BatterymAHourConsumed;
           public Int32 BatteryTemperature;
           public Int32 BackupBatteryVoltage;
           public Byte BatteryChemistry;

       private void button1_Click(object sender, EventArgs e)
           PowerStatus myPowerStatus = new PowerStatus();
           // query the device's power status
           Int32 result = GetSystemPowerStatus(ref myPowerStatus,
           if (!result.Equals(0))
               MessageBox.Show("Ac Line: " +
               MessageBox.Show("Remain: " +
                   myPowerStatus.BatteryLifePercent + "%");

컴팩트 프레임워크에서 PDA의 전원(power) 정보를 알아볼 수 있는 팁.
구조체 정보 등은 아래를 참조.
참조: Windows CE .NET SDK documentation (

'Computer > .NET Compact Framework' 카테고리의 다른 글

Sound Play Class  (0) 2006.09.13