linux下apm是高級(jí)電源管理的意思,早已經(jīng)淘汰了,現(xiàn)在基本都用acpi
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),吐魯番企業(yè)網(wǎng)站建設(shè),吐魯番品牌網(wǎng)站建設(shè),網(wǎng)站定制,吐魯番網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,吐魯番網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
這個(gè)問題我解決過哦。
用P/Invoke調(diào) API:kernel32.dll中的GetSystemPowerStatus函數(shù)。函數(shù)返回系統(tǒng)的電源狀態(tài)。狀態(tài)指數(shù)系統(tǒng)是在直流電源還是交流電源下運(yùn)作,電池是否在充電,電池的剩余電量。
先定義結(jié)構(gòu)體:
[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;
}
然后導(dǎo)入外部函數(shù):
[DllImport("kernel32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern bool GetSystemPowerStatus(ref SYSTEM_POWER_STATUS systemPowerStatus);
如果調(diào)用成功,返回 true,然后分析systemPowerStatus的數(shù)據(jù)就行。
ACLineStatus為1時(shí),表示正在使用交流電源,為0使用直流電源。
希望能夠幫到你。
電池電量信息不像 ubuntu 在 /proc/acpi/battery/BAT 中。通常的方式是內(nèi)核通過sysfs導(dǎo)出信息和控制接口,接口是平臺(tái)不相關(guān)的,因此用戶軟件具有兼容性.
命令行方式查看,可以通過acpi工具,或者直接訪問sysfs相關(guān)目錄
cat /sys/class/power_supply/BAT1/capacity
CentOS下如何查看自己本本的 CPU 和 GPU 的溫度及 Fan(風(fēng)扇) 的轉(zhuǎn)速操作如下:
1、安裝 lm_sensors 軟件包 (如果已安裝了此軟件了,1和2步都跳過吧):
$ sudo yum install lm_sensors
2、手動(dòng)配置下(一路yes或enter就行了):
$ sudo sensors-detect
3、最后打開終端輸入:
$ sensors
這樣就輸出各傳感器的溫度及風(fēng)扇轉(zhuǎn)速了