博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PDA Battery Info (VB.Net+.Net CF) Source Code
阅读量:6184 次
发布时间:2019-06-21

本文共 8313 字,大约阅读时间需要 27 分钟。

None.gif
'
====================================== 
None.gif'
   Get PDA Battery Info 
None.gif'
Summary: 
None.gif'
   Using P/Invoke to get Battery Info. 
None.gif'
This technique is introduced in MSDN 
None.gif'
Library - January 2005 and this program 
None.gif'
is written based on the sample program 
None.gif'
of ms-help://MS.MSDNQTR.2005JAN.1033/dncfhowto/html/getpowstat.htm 
None.gif'
Functions: 
None.gif'
   This program get PDA's battery info- 
None.gif'
mation containing main battery lifetime, 
None.gif'
voltage,current,and backup battery info. 
None.gif'
 
None.gif'
2005/3/17 
None.gif'
Hesicong 
None.gif'
http://dream-world.nease.net 
None.gif'
http://blog.csdn.net/hesicong 
None.gif'
mailto:hesicong@mail.sc.cninfo.net 
None.gif
 
None.gif
Imports
 System 
None.gif
Imports
 System.Drawing 
None.gif
Imports
 System.Collections 
None.gif
Imports
 System.Windows.Forms 
None.gif
Imports
 System.Data 
None.gif
Imports
 System.Runtime.InteropServices 
None.gif 
None.gif
'
 Summary description for Form1. 
ExpandedBlockStart.gifContractedBlock.gif
Public
 
Class BatteryInfo
Class BatteryInfo 
InBlock.gif    
Inherits System.Windows.Forms.Form 
InBlock.gif    
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox 
InBlock.gif    
Private mainMenu1 As System.Windows.Forms.MainMenu 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Sub New()Sub New() 
InBlock.gif        
' 
InBlock.gif
        ' Required for Windows Form Designer support 
InBlock.gif
        ' 
InBlock.gif
        InitializeComponent() 
ExpandedSubBlockEnd.gif    
End Sub
 'New 
InBlock.gif
 
InBlock.gif    
' 
InBlock.gif
    ' TODO: Add any constructor code after InitializeComponent call 
InBlock.gif
    ' 
InBlock.gif
    ' Clean up any resources being used. 
ExpandedSubBlockStart.gifContractedSubBlock.gif
    Protected Overloads Overrides Sub Dispose()Sub Dispose(ByVal disposing As Boolean
InBlock.gif        
MyBase.Dispose(disposing) 
ExpandedSubBlockEnd.gif    
End Sub
 'Dispose 
ExpandedSubBlockStart.gifContractedSubBlock.gif
Windows Form Designer generated code#Region "Windows Form Designer generated code" 
InBlock.gif 
InBlock.gif    
' Required method for Designer support - do not modify 
InBlock.gif
    ' the contents of this method with the code editor. 
InBlock.gif
    Friend WithEvents MenuItem4 As System.Windows.Forms.MenuItem 
InBlock.gif    
Friend WithEvents MenuItem5 As System.Windows.Forms.MenuItem 
InBlock.gif    
Friend WithEvents MenuItem7 As System.Windows.Forms.MenuItem 
InBlock.gif    
Friend WithEvents Timer1 As System.Windows.Forms.Timer 
InBlock.gif    
Friend WithEvents mnuAutoRefresh As System.Windows.Forms.MenuItem 
InBlock.gif    
Friend WithEvents mnuAbout As System.Windows.Forms.MenuItem 
InBlock.gif    
Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub InitializeComponent()Sub InitializeComponent() 
InBlock.gif        
Me.mainMenu1 = New System.Windows.Forms.MainMenu 
InBlock.gif        
Me.MenuItem4 = New System.Windows.Forms.MenuItem 
InBlock.gif        
Me.MenuItem5 = New System.Windows.Forms.MenuItem 
InBlock.gif        
Me.mnuAutoRefresh = New System.Windows.Forms.MenuItem 
InBlock.gif        
Me.MenuItem7 = New System.Windows.Forms.MenuItem 
InBlock.gif        
Me.mnuAbout = New System.Windows.Forms.MenuItem 
InBlock.gif        
Me.TextBox1 = New System.Windows.Forms.TextBox 
InBlock.gif        
Me.Timer1 = New System.Windows.Forms.Timer 
InBlock.gif        
Me.MenuItem1 = New System.Windows.Forms.MenuItem 
InBlock.gif        
' 
InBlock.gif
        'mainMenu1 
InBlock.gif
        ' 
InBlock.gif
        Me.mainMenu1.MenuItems.Add(Me.MenuItem4) 
InBlock.gif        
Me.mainMenu1.MenuItems.Add(Me.mnuAbout) 
InBlock.gif        
' 
InBlock.gif
        'MenuItem4 
InBlock.gif
        ' 
InBlock.gif
        Me.MenuItem4.MenuItems.Add(Me.MenuItem5) 
InBlock.gif        
Me.MenuItem4.MenuItems.Add(Me.mnuAutoRefresh) 
InBlock.gif        
Me.MenuItem4.MenuItems.Add(Me.MenuItem1) 
InBlock.gif        
Me.MenuItem4.MenuItems.Add(Me.MenuItem7) 
InBlock.gif        
Me.MenuItem4.Text = "Menu" 
InBlock.gif        
' 
InBlock.gif
        'MenuItem5 
InBlock.gif
        ' 
InBlock.gif
        Me.MenuItem5.Text = "Refresh" 
InBlock.gif        
' 
InBlock.gif
        'mnuAutoRefresh 
InBlock.gif
        ' 
InBlock.gif
        Me.mnuAutoRefresh.Text = "AutoRefresh" 
InBlock.gif        
' 
InBlock.gif
        'MenuItem7 
InBlock.gif
        ' 
InBlock.gif
        Me.MenuItem7.Text = "End" 
InBlock.gif        
' 
InBlock.gif
        'mnuAbout 
InBlock.gif
        ' 
InBlock.gif
        Me.mnuAbout.Text = "About" 
InBlock.gif        
' 
InBlock.gif
        'TextBox1 
InBlock.gif
        ' 
InBlock.gif
        Me.TextBox1.Location = New System.Drawing.Point(88
InBlock.gif        
Me.TextBox1.Multiline = True 
InBlock.gif        
Me.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal 
InBlock.gif        
Me.TextBox1.Size = New System.Drawing.Size(224256
InBlock.gif        
Me.TextBox1.Text = "" 
InBlock.gif        
' 
InBlock.gif
        'Timer1 
InBlock.gif
        ' 
InBlock.gif
        Me.Timer1.Interval = 1000 
InBlock.gif        
' 
InBlock.gif
        'MenuItem1 
InBlock.gif
        ' 
InBlock.gif
        Me.MenuItem1.Text = "SetRefreshInterval" 
InBlock.gif        
' 
InBlock.gif
        'BatteryInfo 
InBlock.gif
        ' 
InBlock.gif
        Me.Controls.Add(Me.TextBox1) 
InBlock.gif        
Me.Menu = Me.mainMenu1 
InBlock.gif        
Me.Text = "BatteryInfo" 
InBlock.gif 
ExpandedSubBlockEnd.gif    
End Sub
 'InitializeComponent 
InBlock.gif
 
ExpandedSubBlockEnd.gif
#End Region
 
InBlock.gif 
InBlock.gif    
' The main entry point for the application. 
ExpandedSubBlockStart.gifContractedSubBlock.gif
    Shared Sub Main()Sub Main() 
InBlock.gif        Application.Run(
New BatteryInfo) 
ExpandedSubBlockEnd.gif    
End Sub
 'Main 
InBlock.gif
 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Class SYSTEM_POWER_STATUS_EX2Class SYSTEM_POWER_STATUS_EX2 
InBlock.gif        
Public ACLineStatus As Byte 
InBlock.gif        
Public BatteryFlag As Byte 
InBlock.gif        
Public BatteryLifePercent As Byte 
InBlock.gif        
Public Reserved1 As Byte 
InBlock.gif        
Public BatteryLifeTime As System.UInt32 
InBlock.gif        
Public BatteryFullLifeTime As System.UInt32 
InBlock.gif        
Public Reserved2 As Byte 
InBlock.gif        
Public BackupBatteryFlag As Byte 
InBlock.gif        
Public BackupBatteryLifePercent As Byte 
InBlock.gif        
Public Reserved3 As Byte 
InBlock.gif        
Public BackupBatteryLifeTime As System.UInt32 
InBlock.gif        
Public BackupBatteryFullLifeTime As System.UInt32 
InBlock.gif        
Public BatteryVoltage As System.UInt32 
InBlock.gif        
Public BatteryCurrent As System.UInt32 
InBlock.gif        
Public BatteryAverageCurrent As System.UInt32 
InBlock.gif        
Public BatteryAverageInterval As System.UInt32 
InBlock.gif        
Public BatterymAHourConsumed As System.UInt32 
InBlock.gif        
Public BatteryTemperature As System.UInt32 
InBlock.gif        
Public BackupBatteryVoltage As System.UInt32 
InBlock.gif        
Public BatteryChemistry As Byte 
ExpandedSubBlockEnd.gif    
End Class
 'SYSTEM_POWER_STATUS_EX2 
InBlock.gif
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Class SYSTEM_POWER_STATUS_EXClass SYSTEM_POWER_STATUS_EX 
InBlock.gif        
Public ACLineStatus As Byte 
InBlock.gif        
Public BatteryFlag As Byte 
InBlock.gif        
Public BatteryLifePercent As Byte 
InBlock.gif        
Public Reserved1 As Byte 
InBlock.gif        
Public BatteryLifeTime As System.UInt32 
InBlock.gif        
Public BatteryFullLifeTime As System.UInt32 
InBlock.gif        
Public Reserved2 As Byte 
InBlock.gif        
Public BackupBatteryFlag As Byte 
InBlock.gif        
Public BackupBatteryLifePercent As Byte 
InBlock.gif        
Public Reserved3 As Byte 
InBlock.gif        
Public BackupBatteryLifeTime As System.UInt32 
InBlock.gif        
Public BackupBatteryFullLifeTime As System.UInt32 
ExpandedSubBlockEnd.gif    
End Class
 'SYSTEM_POWER_STATUS_EX 
InBlock.gif
 
InBlock.gif    
<DllImport("coredll")> _ 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Shared Function GetSystemPowerStatusEx()Function GetSystemPowerStatusEx(ByVal lpSystemPowerStatus As SYSTEM_POWER_STATUS_EX, ByVal fUpdate As BooleanAs System.UInt32 
ExpandedSubBlockEnd.gif    
End Function
 
InBlock.gif 
InBlock.gif    
<DllImport("coredll")> _ 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Shared Function GetSystemPowerStatusEx2()Function GetSystemPowerStatusEx2(ByVal lpSystemPowerStatus As SYSTEM_POWER_STATUS_EX2, ByVal dwLen As System.UInt32, ByVal fUpdate As BooleanAs System.UInt32 
ExpandedSubBlockEnd.gif    
End Function
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub Form1_Load()Sub Form1_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles MyBase.Load 
InBlock.gif        RefreshStatus() 
ExpandedSubBlockEnd.gif    
End Sub
 'Form1_Load 
InBlock.gif
 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub RefreshStatus()Sub RefreshStatus() 
InBlock.gif        
Dim status As New SYSTEM_POWER_STATUS_EX 
InBlock.gif        
Dim status2 As New SYSTEM_POWER_STATUS_EX2 
InBlock.gif        TextBox1.Text 
= "" 
InBlock.gif        TextBox1.Text 
= "Sample Time:" & Format(Now, "HH:mm:ss"+ vbCrLf + vbCrLf 
InBlock.gif        
With TextBox1 
InBlock.gif            
If Convert.ToInt32(GetSystemPowerStatusEx(status, False)) = 1 Then 
InBlock.gif                
'Do some further work here 
InBlock.gif
            End If 
InBlock.gif            
If Convert.ToInt32(GetSystemPowerStatusEx2(status2, Convert.ToUInt32(Marshal.SizeOf(status2)), False)) = Marshal.SizeOf(status2) Then 
InBlock.gif                
Select Case CInt(status2.ACLineStatus.ToString) 
InBlock.gif                    
Case 0 
InBlock.gif                        .Text 
+= "AC Status: Offline" + vbCrLf 
InBlock.gif                    
Case 1 
InBlock.gif                        .Text 
+= "AC Status: Online" + vbCrLf 
InBlock.gif                    
Case Else 
InBlock.gif                        .Text 
+= "AC Status: Unknown" + vbCrLf 
InBlock.gif                
End Select 
InBlock.gif                .Text 
+= vbCrLf 
InBlock.gif                .Text 
+= "MainBattery" + vbCrLf 
InBlock.gif                .Text 
+= "-LifePercent:" & status2.BatteryLifePercent.ToString + vbCrLf 
InBlock.gif                .Text 
+= "-Voltage:" & (CInt(status2.BatteryVoltage.ToString) / 1000).ToString + "V" + vbCrLf 
InBlock.gif                .Text 
+= "-Current:" & status2.BatteryCurrent.ToString + "mA" + vbCrLf 
InBlock.gif                .Text 
+= "-Temperature:" & (CInt(status2.BatteryTemperature.ToString) / 10).ToString + "" + vbCrLf 
InBlock.gif                .Text 
+= vbCrLf 
InBlock.gif                .Text 
+= "BackupBattery" + vbCrLf 
InBlock.gif                .Text 
+= "-LifePercent:" & status2.BackupBatteryLifePercent.ToString + vbCrLf 
InBlock.gif                .Text 
+= "-Voltage:" & (CInt(status2.BackupBatteryVoltage.ToString) / 1000).ToString + "V" + vbCrLf 
InBlock.gif            
End If 
InBlock.gif        
End With 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub MenuItem3_Click()Sub MenuItem3_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) 
InBlock.gif        Application.
Exit() 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub MenuItem1_Click()Sub MenuItem1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) 
InBlock.gif        RefreshStatus() 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub MenuItem7_Click()Sub MenuItem7_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem7.Click 
InBlock.gif        Application.
Exit() 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub MenuItem5_Click()Sub MenuItem5_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem5.Click 
InBlock.gif        RefreshStatus() 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub mnuAutoRefresh_Click()Sub mnuAutoRefresh_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles mnuAutoRefresh.Click 
InBlock.gif        mnuAutoRefresh.Checked 
= Not (mnuAutoRefresh.Checked) 
InBlock.gif        Timer1.Enabled 
= mnuAutoRefresh.Checked 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub Timer1_Tick()Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Timer1.Tick 
InBlock.gif        RefreshStatus() 
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub mnuAbout_Click()Sub mnuAbout_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles mnuAbout.Click 
InBlock.gif        
MsgBox("Program by Hesicong" & vbCrLf & "http://dream-world.nease.net" & vbCrLf & " http://blog.csdn.net/hesicong" & vbCrLf & "QQ:38288890", MsgBoxStyle.OKOnly, "About"
ExpandedSubBlockEnd.gif    
End Sub
 
InBlock.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub MenuItem1_Click_1()Sub MenuItem1_Click_1(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem1.Click 
InBlock.gif        Timer1.Interval 
= CInt(InputBox("Please enter autorefresh interval(s)""BatteryInfo""1")) * 1000 
ExpandedSubBlockEnd.gif    
End Sub
 
ExpandedBlockEnd.gif
End Class
 
'
Form1 
None.gif
None.gif
你可能感兴趣的文章
计算机硬件系统组成--控制器(上)
查看>>
关于分页杂记
查看>>
企业网盘在企业数据管理中的优势
查看>>
我们是如何实现边缘计算与网络动态加速的?
查看>>
儒博受邀出席圣彼得堡国际经济论坛,探讨人工智能时代的教育话题
查看>>
nmon性能测试
查看>>
字符编码笔记:ASCII,Unicode和UTF-8
查看>>
Java中的String,StringBuilder,StringBuffer三者的区别
查看>>
ubuntu 下修改MySQL 的root用户密码
查看>>
java线程总结
查看>>
MVC框架显示层——Velocity技术
查看>>
POI通过模板导出EXCEL文件
查看>>
进一步理解动态规划
查看>>
MySQL日志管理
查看>>
win7硬盘安装_win7系统安装教程
查看>>
nconf修改密码
查看>>
交换机密码破解
查看>>
linux下PHP手动添加扩展库
查看>>
httpd设置HTTPS双向认证
查看>>
php中设置错误报告级别error_reporting()
查看>>