2014-05-22 3 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

이것은 순수 소프트웨어를 통해 가능하지 않습니다. 특별한 인터페이스가 없으면 OS가 배터리 제어 칩의 동작을 변경할 수있는 방법이 없으므로 하드웨어 지원이 필요합니다.