webForumDet fria alternativet

Tyda felmess och få igång programmet?

.NET

3 svar · 197 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Felmess: "ByRef argument type mismatch"

Medlem sedan okt. 20023 030 inlägg
#2

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

Medlem sedan mars 20023 686 inlägg
#3

Nexus86 skrev:

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

Hehe, fick samma fel jag med. :e , kraftfulla låsas batterier...

Medlem sedan okt. 20023 030 inlägg
#4

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.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)