Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
laptop batterys...
#1
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
Reply
#2
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
[Image: f.jpg]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)