APIのGetSystemPowerStatusという、電源の情報を取得する関数を使うとわかります。
#uselib "kernel32.dll"
#func GetSystemPowerStatus "GetSystemPowerStatus" var
dim lpSystemPowerStatus, 2;
GetSystemPowerStatus lpSystemPowerStatus; // バッテリーの情報取得
ACLineStatus = lpSystemPowerStatus(0) & 0xFF; // AC電源の状態
BatteryFlag = (lpSystemPowerStatus(0) >> 8) & 0xFF; // 充電状態
BatteryLifePercent = (lpSystemPowerStatus(0) >> 16) & 0xFF; // 電源の残りの割合
BatteryLifeTime = lpSystemPowerStatus(1) & 0xFFFF; // バッテリーの残り時間(秒)
BatteryFullLifeTime = (lpSystemPowerStatus(1) >> 16) & 0xFFFF; // フル充電時のバッテリーの寿命(秒)
if( BatteryFullLifeTime == 0xFFFF ) : BatteryFullLifeTime = -1; // 寿命が不明な場合は-1
if( ACLineStatus == 0 ) {
mes "AC電源がオフライン(電源に接続していない)";
}
else: if( ACLineStatus == 1 ) {
mes "AC電源がオンライン(電源に接続している)";
}
else: if( ACLineStatus == 2 ) {
mes "AC電源の状態が不明";
}
if( BatteryFlag & 1 ) {
mes "バッテリー状態:高(66%よりも上)";
}
if( BatteryFlag & 2 ) {
mes "バッテリー状態:低(33%よりも下)";
}
if( BatteryFlag & 4 ) {
mes "バッテリー状態:危機的(5%よりも下)";
}
if( BatteryFlag & 8 ) {
mes "バッテリー状態:充電中";
}
if( BatteryFlag & 128 ) {
mes "バッテリー状態:バッテリーが無い(デスクトップPC)";
}
if( BatteryFlag & 256 ) {
mes "バッテリー状態:不明";
}
mes "バッテリーの残量:"+BatteryLifePercent+"%";
BatteryFlagが128の場合はデスクトップPCです。