用P/Invoke调 API:kernel32.dll中的GetSystemPowerStatus函数。函数返回系统的电源状态。状态指数系统是在直流电源还是交流电源下运作,电池是否在充电,电池的剩余电量。
先定义结构体:
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEM_POWER_STATUS
{
public byte ACLineStatus
public byte BatteryFlag
public byte BatteryLifePercent
public byte Reserved1
public int BatteryLifeTime
public int BatteryFullLifeTime
}
然后导入外部函数:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool GetSystemPowerStatus(ref SYSTEM_POWER_STATUS systemPowerStatus)
如果调用成功,返回 true,然后分析systemPowerStatus的数据就行。
ACLineStatus为1时,表示正在使用交流电源,为0使用直流电源。
希望能够帮到你。
linux设置电量显示路径是,linux不同发行版本,不同的电源管理工具,保存电池剩余电量的文件路径不一。
但存放电池剩余电量信息的文件名称不变:capacity
而且可以肯定它在/sys/目录下某处。
因此只需要使用:
# find /sys/ -name capacity -exec cat {} \
命令便可以获取笔记本的剩余电量,而且这条十分简洁,易于记忆,无需记又臭又长的路径。
(除kali外其它主流发行版本都适用,我也不知道为什么kali就不行 )
如果依然觉得这条命令太长,可以进行以下步骤(略微复杂)
# alias capacity='find /sys/ -name capacity -exec cat {} \'
来自定义一个capacity命令,然后就可以直接使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)