Precis under End Type i deklarationen för SYSTEM_POWER_STATUS, skriv
Dim Power As SYSTEM_POWER_STATUS
Fast det är något med koden som inte stämmer. Jag har 255% kraft i mitt batteri (som förresten inte existerar). :e
3 svar · 197 visningar · startad av medialabs
Felmess: "ByRef argument type mismatch"
Precis under End Type i deklarationen för SYSTEM_POWER_STATUS, skriv
Dim Power As SYSTEM_POWER_STATUS
Fast det är något med koden som inte stämmer. Jag har 255% kraft i mitt batteri (som förresten inte existerar). :e
Nexus86 skrev:
Precis under End Type i deklarationen för SYSTEM_POWER_STATUS, skriv
Dim Power As SYSTEM_POWER_STATUSFast det är något med koden som inte stämmer. Jag har 255% kraft i mitt batteri (som förresten inte existerar). :e
Hehe, fick samma fel jag med. :e , kraftfulla låsas batterier...
Jag kan tänka mig att den där funktionen returnerar procenten i hex (iaf på vissa operativ) och det ger därför ett maxvärde på 255. Du kan ju alltid ta värdet och dela med 2.55. Ex
Public Function BattPerc() As Integer
GetSystemPowerStatus Power
BattPerc = Power.BatteryLifePercent \ 2.55
If Power.BatteryLifePercent = Battery_PercentageUnknown Then BattPerc = 0
End Function
Orsaken till att jag använder \ istället för / är att då får man inga decimaler (vilket du förmodligen inte vill ha) och divisionen går därför snabbare. Vet dock inte hur denna kod kommer funka på alla operativ. :l
r/ Tänker då på att vissa operativ kanske inte returnerar BatteryLifePercent som hex.