我正在使用Visual Studio 2005中的VB.NET windows移动应用程序。 我想查看我的设备电池电量,所以我给代码加载了这样的表格:
Imports System.IO
Imports System.Data
Imports System.Drawing.Imaging
Imports System.Configuration
Imports Microsoft.Win32
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports System
Dim power As SystemInformation.PowerStatus = SystemInformation.PowerStatus
Dim percent As Single = power.BatteryLifePercent
MsgBox("Percent battery life remaining: " & percent * 100)
但显示错误
未定义SystemInformation.PowerStatus。
任何人都告诉我如何解决这个问题
答案 0 :(得分:0)
忘记那些谈论VS2015的人。这与在Windows移动设备上运行的紧凑型框架无关!
你需要使用状态和通知api:在c#中这是
using Microsoft.WindowsMobile.Status; // see https://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.status.aspx
...
BatteryLevel batteryLevel = SystemState.PowerBatteryStrength;
BatteryState batteryState = SystemState.PowerBatteryState;
确保您使用目标Windows Mobile 6.x!和comapct框架3.5
另一种方法是使用P / Invoke和GetSystemPowerStatusEx。 见How do you get the current battery level in .NET CF 3.5?
如果您没有安装并定位至少Windows Mobile 6 SDK,则在添加引用中不会看到Microsoft.WindowsMobile.Status。
如果您想继续使用PPC2003,则需要使用P / Invoke for GetSystemPowerStatusEx。
如果您理解这一点,Here是获取电池状态的好方法。还有很多其他网站,不要懒惰,并使用你的互联网搜索引擎。
很抱歉,但是当MS重命名SDK并重新排列网站而不查看现有链接时,即使在页面和搜索结果上,我也无法找到适用于Windows Mobile 6.5的Developer Toolkit(DTK)已重命名为Windows Embedded Handheld 6.5)。
答案 1 :(得分:-1)
PowerStatus
用于声明System.Windows.Forms
的变量部分的类型,而不是SystemInformation
。这条线
Dim power As SystemInformation.PowerStatus = SystemInformation.PowerStatus
需要更改为:
Dim power As System.Windows.Forms.PowerStatus = SystemInformation.PowerStatus
这对我有用(我在Visual Studio 2013中,但这不应该有所作为。)
Private Sub ShowBatteryPercent()
Dim power As System.Windows.Forms.PowerStatus = SystemInformation.PowerStatus
Dim percent As Single = power.BatteryLifePercent
MsgBox("Percent battery life remaining: " & percent * 100)
End Sub
必须确保您拥有Imports System.Windows.Forms
。