2014-05-22 191 views
1

我想在充滿電時停止給筆記本充電。我曾嘗試使用PowerManagement功能。使用它們,我可以讀取電池狀態,但無法停止充電。電池充滿時停止充電

可能嗎?

如何實現?

我的代碼是:提前

Type t = typeof(System.Windows.Forms.PowerStatus); 
PropertyInfo[] pi = t.GetProperties(); 
PropertyInfo prop = null; 
object propValue = null; 
for (int i = 0; i < pi.Length; i++) 
{ 
    prop = pi[i]; 
    propValue = prop.GetValue(SystemInformation.PowerStatus, null); 
    int batteryLifePercent = (int)(SystemInformation.PowerStatus.BatteryLifePercent * 100); 
    if (batteryLifePercent == 100) 
    { 
     // stop charging 
    } 
} 

感謝。

+0

我可以問你爲什麼使用反射來查看屬性? – mason

+3

你的問題沒有任何意義。筆記本電腦中的充電電路顯然會在電池充滿時自動停止對電池充電,否則會將它吹到地獄...... – elgonzo

+1

@mason我認爲你的意思是反射,但你的問題是有效的。 – Rik

回答

0

您的筆記本電腦不能以編程方式控制充電。像elgonzo說,如果它繼續充電它會過熱,要麼融化你的電腦或爆炸。

+0

第一句話不一定是真的......當電池充滿時,當環境溫度過高或過低**,在某些情況下,在軟件控制下,充電也會停止。 –

+0

我認爲它可以通過編程控制。但我不知道如何實現。 – geethu

1

沒有用於禁用充電的標準API。有些製造商已經增加了自己的電路和特殊的驅動器,以允許對充電器進行軟件控制。例如,某些Compal筆記本電腦中包含一個「綠色充電器」實用程序,可在每次充電的運行時間與電池壽命期間的運行時間衰減之間進行權衡,從而停止充電80%。

但這些機制是完全專有的和製造商特定的。

1

這是不可能通過純軟件。您需要硬件支持,因爲您的操作系統無法更改電池控制芯片的行爲,除非有專門的接口可用。