Files
devplacepy/nodes/client/battery_windows.go
T

29 lines
617 B
Go
Raw Normal View History

//go:build windows
package main
import (
"syscall"
"unsafe"
)
type systemPowerStatus struct {
ACLineStatus byte
BatteryFlag byte
BatteryLifePercent byte
SystemStatusFlag byte
BatteryLifeTime uint32
BatteryFullLifeTime uint32
}
var getSystemPowerStatus = syscall.NewLazyDLL("kernel32.dll").NewProc("GetSystemPowerStatus")
func systemBattery() (bool, error) {
var status systemPowerStatus
result, _, err := getSystemPowerStatus.Call(uintptr(unsafe.Pointer(&status)))
if result == 0 {
return false, err
}
return windowsOnBattery(status.ACLineStatus, status.BatteryFlag), nil
}