| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 外接设备编程 >> 实例分析正文
最新推荐 更多内容
管理计算机电源状态的类(VB2010实例)
管理计算机电源状态的类(VB2010实例)
作者:Akyao    来源:乐博网收集     更新时间:2011-4-19

本文演示一些可以用于管理计算机电源状态的类,来自乐博网。

如果你想下载本文的源代码RAR压缩集合包  请访问
VB2010源代码集合包(芋头糕)    http://www.lob.cn/code/utility/2795.shtml
特别感谢网友 芋头糕 将此资源提供乐博网分享,欢迎加入 40797788 的.Net超级qq群交流。

演示一些可以用于管理计算机电源状态的类的实例代码如下:

Imports System.Runtime.InteropServices

Public Class Form1
    Dim myManagedPower As New ManagedPower()

    Sub New()

        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        'Set label to initial status
        Label1.Text = myManagedPower.ToString()
    End Sub

    Sub timerTickHandler(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
        Label1.Text = myManagedPower.ToString()
    End Sub
End Class

'
' This class contains the definitions of the unmanaged methods,
' structs and enums that will be used in the call to the
' unmanaged power API.
'
Public Class ManagedPower
    ' GetSystemPowerStatus() is the only unmanaged API called.
    Declare Auto Function GetSystemPowerStatus Lib "kernel32.dll" _
    Alias "GetSystemPowerStatus" (ByRef sps As SystemPowerStatus) As Boolean

    Public Overrides Function ToString() As String
        Dim text As String = ""
        Dim sysPowerStatus As SystemPowerStatus
        ' Get the power status of the system
        If ManagedPower.GetSystemPowerStatus(sysPowerStatus) Then
            ' Current power source - AC/DC
            Dim currentPowerStatus = sysPowerStatus.ACLineStatus
            text += "Power source: " + sysPowerStatus.ACLineStatus.ToString() + Environment.NewLine

            ' Current power status
            text += "Power status: "

            ' Check for unknown  '更多.net源代码 来自乐博网lob.cn
            If sysPowerStatus.BatteryFlag = ManagedPower._BatteryFlag.Unknown Then
                text += "Unknown"
            Else
                ' Check if currently charging
                Dim fCharging = (ManagedPower._BatteryFlag.Charging = _
      (sysPowerStatus.BatteryFlag & ManagedPower._BatteryFlag.Charging))

                If fCharging Then
                    Dim currentChargingStatus = ManagedPower._BatteryFlag.Charging
                End If

                ' Print out power level
                ' If the power is not High, Low, or Critical, report it as "Medium".
                Dim currentPowerLevel As String
                If sysPowerStatus.BatteryFlag = 0 Then
                    currentPowerLevel = "Medium"
                Else
                    currentPowerLevel = sysPowerStatus.BatteryFlag.ToString()
                End If
                text += currentPowerLevel

                ' Print out charging status
                If fCharging Then
                    Dim currentChargingStatus = ManagedPower._BatteryFlag.Charging.ToString()
                    text += " (" + ManagedPower._BatteryFlag.Charging.ToString() + ") "
                End If
            End If

            ' Finally print the percentage of the battery life remaining.
            Dim currentBatteryPercentage = sysPowerStatus.BatteryLifePercent
            text += Environment.NewLine + "Battery life remaining is " + _
            sysPowerStatus.BatteryLifePercent.ToString() + "%"
        End If
        Return text
    End Function

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure SystemPowerStatus
        Public ACLineStatus As _ACLineStatus
        Public BatteryFlag As _BatteryFlag
        Public BatteryLifePercent As Byte
        Public Reserved1 As Byte
        Public BatteryLifeTime As System.UInt32
        Public BatteryFullLifeTime As System.UInt32
    End Structure

    Public Enum _ACLineStatus As Byte
        Battery = 0
        AC = 1
        Unknown = 255
    End Enum

    <Flags()> _
    Public Enum _BatteryFlag As Byte
        High = 1
        Low = 2
        Critical = 4
        Charging = 8
        NoSystemBattery = 128
        Unknown = 255
    End Enum
End Class

 

  • 上一篇:

  • 下一篇: 没有了
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    Tablet PC 上可用的文本识别选项(VB2010实例)
    Tablet PC 2005 中对笔势的系统识别(VB2010实例)
    自定义数据控件(VB2010实例)
    Tablet PC 2005 的区分上下文功能(VB2010实例)
    响应数字化仪触笔背面的橡皮擦(VB2010实例)
    WMI编程实例(VB2010实例)
    系统服务管理实例(VB2010实例)
    进程管理(VB2010实例)
    显示进程组成模块(VB2010实例)
    任务管理器编程(VB2010实例)
    性能计数器编程(VB2010实例)
    消息队列MSMQListener(VB2010实例)
    消息队列MSMQClient(VB2010实例)
    写入事件日志(VB2010实例)
    读取事件日志(VB2010实例)
    创建和删除事件日志(VB2010实例)

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]