SysInfo 应用实例 3:监视电池电源的状态

使用一个电源状态属性,即可监视电池的充电状态。BatteryLifePercent 属性为 ProgressBar 控件提供了百分比。Timer 控件设置了检查电源状态的时间间隔。

用 BatteryLifePercent 属性创建简单的电池标尺

  1. 在 Visual Basic 中创建新工程。

  2. 在窗体中添加 SysInfo、Timer 和 ProgressBar 控件。

  3. 将 Timer 控件的 Interval 属性设置为 5000。

  4. 在 Timer 控件的 Timer 事件中加入下面的代码:
    Private Sub tmrBattery_Timer()
    If sysBattery.BatteryLifePercent <> 255 Then
    prgBattery.Value =  _ sysBattery.BatteryLifePercent
    prgBattery.Enabled = True
    Else
    prgBattery.Value = 0
    prgBattery.Enabled = False
    End If
    End Sub
    

该应用程序运行时,SysInfo 控件向操作系统查询是否有电池,并用 BatteryLifePercent 属性显示其当前充电状态。

图 2.28 简单的电池标尺

可以对该示例进行改进,使用电源状态事件检测系统电源状态的变化。在下面的示例中,在窗体上添加了 Label 控件,并在电源状态改变时用 PowerStatusChanged 事件通知用户。

更新电池电源状态的变化

  1. 在窗体中添加 Label 控件。

  2. 在 Sysinfo 控件的 PowerStatusChanged 事件中加入下面的代码:
    Private Sub sysBattery_PowerStatusChanged()
    Select Case sysBattery.BatteryStatus
    Case 1
    lblStatus.Caption = "电池正常"
    Case 2
    lblStatus.Caption = "电池余量不足"
    Case 4
    lblStatus.Caption = "电池余量严重不足"
    Case 8
    lblStatus.Caption = "电池正在充电"
    Case 128, 255
    lblStatus.Caption = "没有电池"
    End Select
    End Sub
    

图 2.29 用 PowerStatusChanged 事件改进后的电池标尺

在 Select Case 语句中,BatteryStatus 属性的返回值指示了电池的当前状态设置。在发生 PowerStatusChange 事件时,用当前状态对 Label 控件进行更新。例如,如果电池能量耗尽,或被从计算机中取出。