Come ottenere i dati relativi alla batteria di un laptop, in particolare lo stato (in carica o no), la percentuale di carica e l'autonomia rimanente?

Semplice, il framework .net fornisce una comoda classe SystemInformation.PowerStatus che può essere utilizzata in questi modi:

[sourcecode language="vb"]
SystemInformation.PowerStatus.PowerLineStatus
[/sourcecode]
per conoscere lo stato, restituisce 1 se collegato alla rete elettrica, 0 se scollegato.

[sourcecode language="vb"]
SystemInformation.PowerStatus.BatteryLifePercent * 100
[/sourcecode]
restituisce la percentuale di carica rimanente

[sourcecode language="vb"]
SystemInformation.PowerStatus.BatteryLifeRemaining / 60
[/sourcecode]
restituisce i minuti di carica rimanenti.