2009-07-07 15 views
9

Hay información fácilmente disponible sobre cómo encontrar el estado de una batería o si está cargándose o no. (GetSystemPowerStatus API o System.Windows.Forms.SystemInformation.PowerStatus).¿Cómo puedo detener programáticamente la carga de una batería de un portátil?

Quiero ser capaz de evitar que una batería se cargue según algunos criterios, p. potencia de la batería> 20%.

¿Hay una API para hacer esto?

+2

¿Por qué estás tratando de hacer esto? – DevinB

+0

La mayoría de las computadoras portátiles no tienen forma de hacerlo en su firmware. – pjc50

+11

¿Considera que una respuesta que incluye robots fabricados con Lego Mindstorms es estar fuera del alcance? – STW

Respuesta

5

Creo que es imposible, porque necesita un API para la batería o el cargador de batería.

Y esta API puede proporcionarle esto a su fabricante de notebook y batería o cargador de batería.

+0

Marcado como la "mejor" respuesta – Marcel

+0

Me pregunto cuándo (o si) alguna vez veremos un fabricante de hardware que proporcione todos los aspectos posibles de sus diseños para lograr cualquier cosa programáticamente. Ser detenido por hardware es tan poco agradable. – Kensai

+2

@Kensai - ¡imagina el havok que el malware podría causar! ¡Destruye tu batería y roba tu información personal! – Coxy

2

Sinceramente, no sé, pero me gustaría echar un vistazo a las APMACPI o APIs.

Aparte de eso, la única opción que puedo pensar ahora es un brazo robótico controlado por USB que expulsa la batería cuando necesita detener la carga, pero eso probablemente no es lo que está buscando, y bordea el complicator's glove en términos de nivel de sobre-ingeniería. :)

0

Pero, por ejemplo, Vista no cargará la batería si se desenchufa y luego se enchufa mientras su capacidad está por encima del 96%, lo que significa que se puede acceder y manipular de alguna manera.

+0

¿De dónde sacaste esa información? – Aardvark

+0

Sucede en mi computadora portátil, cada vez que lo desenchufo y lo vuelvo a enchufar si la capacidad es superior al 96%, dice, enchufado, sin cargar. Si luego lo desenchufo y lo dejo descargar por debajo del 96%, y luego lo vuelvo a enchufar, se cargará al 100%. –

+0

Me gustaría ese comportamiento, pero me gustaría establecer el% en otra cosa, p. 20% – Marcel

1

Una de las opciones es agarrar el dispositivo (I) para la batería (batería de método de control que cumple con ACPI de Microsoft). Escuche los eventos de PowerNotification para siempre. En cada notificación, verifique el PowerStatus de la batería. Hay API para todos los fines anteriores en .Net y win32

Mantenga el dispositivo (I) desactivado siempre que el estado de la potencia sea> umbral. Habilítelo tan pronto como esté por debajo de eso o cuando no esté conectado a la alimentación de CA (es decir, antes de desconectar la alimentación de CA, su software de monitoreo continuo debe habilitar ese dispositivo de batería, o lo habilita manualmente).

hmm, ... esta es una solución muy defectuosa, pero puede lograr lo que quiere, aunque debe tener mucho cuidado.

1

Me gustaría obtener un UPS y programáticamente decirle que corte toda la potencia ... la mayoría debería tener una interfaz para hacer esto. De lo contrario, como alguien ya dijo, una toma de corriente controlada por computadora lo haría ^^

En realidad, he jugado con esta idea cuando estaba probando/escribiendo sobre demasiados modelos de computadora portátil hace un tiempo y la prueba de batería Era molesto configurar, monitorear y analizar.

escribí una aplicación que haría exactamente todo (configuración, escuchar, medir, reportar) excepto desconectar la fuente y luego vuelva a enchufarlo y empezar de nuevo el ordenador ...

2

Creo que es posible, porque era patentado por IBM (patent no. 7570015).

No estoy seguro si hay una API de Windows disponible para eso.

+4

Las patentes de software son malas. Esto es absurdo patentar una idea tan abstracta. Igual que patentar la idea de cruzar la calle dependiendo del color de los semáforos. –

+1

Afortunadamente, esas patentes no son válidas en la UE. – Matt

0

Las computadoras portátiles Lenovo saben que le permite especificar los niveles de carga de la BIOS o de su software, pero esta función debe implementarse en BIOS para que se pueda acceder desde Windows.

-1

Llegué a la conclusión:

acaba de darse por vencido y olvidarse de este asunto. No es un problema, así que no te preocupes por eso. Deje que se enchufa y se cargue por completo. cuando está en 100%, el sistema automáticamente deja de cargarse y se conecta a la corriente, por lo tanto, tal vez no se preocupe por usar una batería, ya que todos los portátiles (si no es del siglo XX) cuentan con regulación automática. Aunque, si alguna vez necesita, mover las manos y conectar/desconectar manualmente. No seas flojo. Esa es la solución n. ° 1 y más rápida, créame.

(sin embargo, si usted quiere perder el tiempo, aquí están los métodos -
1) http://www.makeuseof.com/answers/what-battery-manager-can-stop-charging-at-a-certain-percentage/
2) disable devices temporarily (pero hay que desactivar "Microsoft compatible con ACPI Método de control de la batería")
3) https://superuser.com/questions/813182/how-to-stopdisable-battery-charging-on-laptop

+0

Mantenerlo al 100% daña la batería. Porque un voltaje más alto significa más desgaste. Ver: http://www.wired.com/2013/09/laptop-battery/ – simurg

Cuestiones relacionadas