2014-03-06 126 views
5
Dim power As PowerStatus = SystemInformation.PowerStatus 
Dim percent As Single = power.BatteryLifePercent 

如何檢索雙電池狀態?

PowerStatus power = SystemInformation.PowerStatus; 
float percent = power.BatteryLifePercent; 

(我寧願一個VB的答案,這是什麼應用程序是用,但可以轉換所以C#是好的,如果你不知道VB)

據我所知,上面會給我剩餘電池的百分比 - 但我有一個'熱插拔'的平板電腦(它有一個主電池,然後一個5分鐘的小電池,可以在您更換電池時運行平板電腦) - 我如何找到狀態第二塊電池?

我正在尋找像SystemInformation.PowerStatus(0)之類的東西,但我不知道我實際上想要找到什麼,我必須有一個Google塊,因爲我找不到任何東西。

+0

如果沒有對此信息的託管訪問權限,則存在WMI ['Win32_Battery'](http://msdn.microsoft.com/zh-cn/library/aa394074(v = vs.85).aspx)類。 –

+0

看一下http://www.csharpdeveloping.net/Snippet/how_to_enumerate_batteries_using_wmi它提供了WMI關於電池信息的完整列表 –

回答

7

您可以使用WMI和Win32來獲取電池電量。

試試這個:

ObjectQuery query = new ObjectQuery("Select * FROM Win32_Battery"); 

foreach (ManagementObject o in new ManagementObjectSearcher(query).Get()) 
{ 
    uint level = (uint)o.Properties["EstimatedChargeRemaining"].Value; 
} 
1

在多個電池的情況下,你可以使用WMI的。具體而言,Win32_Battery類。但是,這會比使用PowerStatus類慢一點。

+0

速度不是問題 - 只會每隔2分鐘左右輪詢一次 - 只是我的應用程序是全屏幕,因此涵蓋了狀態! –