2016-02-17 214 views
0

我的工作在VB.NET的Windows Mobile應用程序,在Visual Studio 2005 我想檢查我的設備電池的充電,所以我給我的代碼形式的負載是這樣的:檢查電池狀態6.5

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未定義。

任何人告訴我用來聲明的System.Windows.Forms,不SystemInformation變量部分的類型時,我如何能解決這個問題

+0

Visual Studio ** 2005 **?你的意思是* 2015 *?你有沒有在你的項目中引用'System.Windows.Forms'?並且適當的'Imports'語句? – Tim

+0

是的,先生,我WAM在Visual Studio 2005的進口System.io 進口System.Data 進口System.Drawing.Imaging 進口System.Configuration 進口的Microsoft.Win32 進口System.Windows工作。形式 進口Microsoft.VisualBasic 進口系統 –

+0

我增加了這麼多進口 –

回答

-1

PowerStatus。該生產線

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

+0

先生我有進口System.Windows.Forms但使用此代碼時,我得到錯誤System.Windows.Forms.PowerStatus未定義 –

+0

我正在Visual Studio 2005和開發widnows的應用程序移動設備中心,我想顯示設備的電池狀態 –

+0

我不相信視覺工作室的版本應該重要。你的項目引用中還列出了'System.Windows.Forms'嗎?你正在開發什麼版本的.NET框架? – RianBattle

0

忘記傢伙們在談論VS2015。這與在Windows移動設備上運行的緊湊framwework無關!

你需要使用狀態,並通知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.WindowsMo​​bile.Status。

如果你想留在PPC2003中,你需要使用GetSystemPowerStatusEx的P/Invoke。

Here是一個很好的關於獲得電池狀態artcile,如果你明白這一點。還有很多其他網站,不要懶惰,並使用您的互聯網搜索引擎。

對不起,但由於MS重命名SDK並重新排列網站而無需查看現有鏈接,即使在網頁和搜索結果中,我也無法找到Windows Mobile 6.5的開發人員工具包(DTK)已被重新命名爲Windows Embedded Handheld 6.5)。

+0

我無法下載Microsoft.WindowsMo​​bile.Status ..而無需將此添加到引用中,我無法導入此權利? –

+0

先生,我可以看到目標設備:掌上電腦2003 SE模擬器 –

+0

PocketPC 2003是非常過時的,沒有WindowsMo​​bile.Status。請至少安裝Windows Mobile 6 SDK或使用本地函數GetSystemPowerStatusEx進行pinvoke – josef