博客
关于我
强烈建议你试试无所不能的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
你可能感兴趣的文章
php 使用zendstudio 生成webservice文件 wsdl
查看>>
mysql将数据表改成 innodb
查看>>
Spring
查看>>
spring配置多数据源问题
查看>>
IOS中的属性列表----Property List
查看>>
如何通过网页启动应用程序
查看>>
ORA-00845: MEMORY_TARGET not supported on this system
查看>>
android 获取路径目录方法以及判断目录是否存在,创建目录
查看>>
使用ajaxFileUpload实现异步上传图片
查看>>
Python 杂集
查看>>
Another Eight Puzzle
查看>>
炸弹人——NABCD分析
查看>>
【前端积累】背景图像和背景替换
查看>>
ibatis sqlmap动态SQL
查看>>
使用WdatePicker日期组件时,选择日期后,执行某个方法
查看>>
HttpClient---------demo
查看>>
把玩爬虫框架Gecco
查看>>
递 归
查看>>
CSS3实现纸张边角卷起效果
查看>>
Windows平台AnyChat视频显示
查看>>