Posts: 1
Threads: 1
Joined: May 2005
Im looking for a way to read the percentage of a laptop battery in quickbasic.
Is this at all possable?
It needs to be a dos program, and i dont mind c if it comes down to it.
please let me know! And thanks in advanced!
nick
Posts: 73
Threads: 6
Joined: Dec 2004
Hi,
I found this code on web:
Code:
DECLARE FUNCTION APM.GetBatteryPower% ()
DECLARE FUNCTION APM.Connect% ()
DECLARE SUB GetHiLo (Integ%, Hi%, Lo%)
'$INCLUDE: 'Qb.bi'
CLS
PRINT "APM-Libary"
PRINT "Version 1.0"
PRINT "By Stefan Riepl 2004-2005"
PRINT "*****************************"
PRINT
PRINT "Connecting to APM-BIOS..."
i% = APM.Connect%
PRINT "Battery state: "; LTRIM$(STR$(APM.GetBatteryPower%)); "%"
FUNCTION APM.Connect%
DIM Reg AS RegTypeX
Reg.ax = &H5301
Reg.bx = &H0
CALL INTERRUPTX(&H15, Reg, Reg)
PRINT "OK."
APM.Connect% = Reg.ax
END FUNCTION
FUNCTION APM.GetBatteryPower%
DIM Reg AS RegTypeX
Reg.ax = &H530A
Reg.bx = &H1
CALL INTERRUPTX(&H15, Reg, Reg)
T$ = HEX$(Reg.cx)
IF LEN(T$) < 4 THEN T$ = STRING$(4 - LEN(T$), "0") + T$
H% = VAL("&H" + LEFT$(T$, 2))
L% = VAL("&H" + RIGHT$(T$, 2))
APM.GetBatteryPower% = L%
END FUNCTION
SUB GetHiLo (Integ%, Hi%, Lo%)
i$ = HEX$(Integ%)
IF LEN(i$) < 4 THEN
i$ = STRING$(4 - LEN(i$), "0") + i$
END IF
Hi% = VAL(MID$(i$, 1, 2))
Lo% = VAL(MID$(i$, 3, 2))
END SUB
Greetings,
Sebastian