博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PDA Battery Info (VB.Net+.Net CF) Source Code
阅读量:6185 次
发布时间: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
你可能感兴趣的文章
JS 对象机制深剖——new 运算符
查看>>
oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
查看>>
js获取宽度设置thickbox百分比
查看>>
windows下如何安装和启动MySQL
查看>>
SQL Server误区30日谈-Day29-有关堆碎片的误区
查看>>
【转】MyEclipse快捷键大全
查看>>
C#下如何实现服务器+客户端的聊天程序
查看>>
Android界面刷新的方法
查看>>
Linux中inet_aton的问题(IP转整数)
查看>>
tp5下通过composer实现日志记录功能
查看>>
Activating Browser Modes with Doctype
查看>>
Windows 7 任务栏开发 之 缩略图工具栏(Thumbnail Toolbar)
查看>>
Struts总结
查看>>
Android中px和dip的区别
查看>>
Oracle中用户解锁
查看>>
[ACM_水题] ZOJ 3712 [Hard to Play 300 100 50 最大最小]
查看>>
怎么用js调用C#后台方法
查看>>
free 和 delete 把指针怎么了
查看>>
[转载]一天只工作 3 小时的程序员,已坚持两年
查看>>
DWR原理探秘
查看>>