[C#]使用SystemInformation.PowerStatus查看目前電源使用狀態
Introduction
這篇簡單記錄一下,如何透過SystemInformation類別的PowerStatus屬性,來查看目前電源的使用狀態。
Namespace
System.Windows.Forms
Assembly
System.Windows.Forms (in System.Windows.Forms.dll)
Properties
以下為PowerStatus類別所擁有的屬性(摘自MSDN Library)
BatteryChargeStatus | Gets the current battery charge status. |
BatteryFullLifetime | Gets the reported full charge lifetime of the primary battery power source in seconds. |
BatteryLifePercent | Gets the approximate percentage of full battery time remaining. |
BatteryLifeRemaining | Gets the approximate number of seconds of battery time remaining. |
PowerLineStatus | Gets the current system power status. |
MSDN上已經說明的很清楚了,這邊就只簡單的說明一下:
BatteryChargeStatus | 表示目前充電狀態。 回傳值為BatteryChargeStatus型態的列舉值,其值可為High(高電量)、Low(低電量)、Critical(極低電量)、Charging(充電中)、NoSystemBattery(沒電池)、與Unknown(狀態不詳)。 |
BatteryFullLifetime | 表示充滿電力可使用多久時間(-1為不詳)。 |
BatteryLifePercent | 表示電力剩餘多少百分比(255為不詳)。 |
BatteryLifeRemaining | 表示剩餘電力可使用多久時間(-1為不詳)。 |
PowerLineStatus | 表示電源狀態。 回傳值為PowerLineStatus型態的列舉值,其值可為Online(充電狀態)、Offline(電池模式)、與Unknow(狀態不詳)。 |
Example
C#
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void UpdateInfo()
{
PowerStatus ps = SystemInformation.PowerStatus;
this.tbxPowerStatus.Text = ps.PowerLineStatus.ToString();
this.tbxBatteryChargeStatus.Text = ps.BatteryChargeStatus.ToString();
this.tbxBatteryFullLifetime.Text = ps.BatteryFullLifetime.ToString();
this.tbxBatteryLifePercent.Text = ps.BatteryLifePercent.ToString();
this.tbxBatteryLifeRemaining.Text = ps.BatteryLifeRemaining.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
UpdateInfo();
}
private void Form1_Load(object sender, EventArgs e)
{
UpdateInfo();
}
}
}
VB.NET
Private Sub UpdateInfo()
Dim ps As PowerStatus = SystemInformation.PowerStatus
With Me
.tbxPowerStatus.Text = ps.PowerLineStatus.ToString
.tbxBatteryChargeStatus.Text = ps.BatteryChargeStatus.ToString
.tbxBatteryFullLifetime.Text = ps.BatteryFullLifetime
.tbxBatteryLifePercent.Text = ps.BatteryLifePercent
.tbxBatteryLifeRemaining.Text = ps.BatteryLifeRemaining
End With
End Sub
Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
UpdateInfo()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
UpdateInfo()
End Sub
End Class
執行畫面