Notebooks werden immer beliebter Folgende Daten können über die API-Funktion ermittelt werden:
Erstellen Sie ein neues Projekt und fügen nachfolgende Deklarationen in den Allgemein-Teil der Form ein: Option Explicit ' Benötigte API-Deklarationen Private Declare Function GetSystemPowerStatus Lib "kernel32" _ Alias "GetSystemPowerStatus" ( _ lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long Private Type SYSTEM_POWER_STATUS ACLineStatus As Byte BatteryFlag As Byte BatteryLifePercent As Byte Reserved1 As Byte BatteryLifeTime As Long BatteryFullLifeTime As Long End Type Private Enum PowerStatus ACPower = 0 ' externes Netzteil vorhanden? BatteryFlag = 1 ' Batteriezustand BatteryPercent = 2 ' Restlaufzeit in Prozent BatteryTime = 3 ' Restlaufzeit in Sekunden BatteryFullTime = 4 ' Akku-Gesamtlaufzeit End Enum ' Akku-Status abfragen Private Function GetPowerState(eState As PowerStatus) As String Dim oState As SYSTEM_POWER_STATUS If GetSystemPowerStatus(oState) <> 0 Then With oState Select Case eState Case ACPower ' ext. Netzteil vorhanden? If .ACLineStatus = 0 Then GetPowerState = "kein Netzteil" ElseIf .ACLineStatus = 1 Then GetPowerState = "Netzteil vorhanden" Else GetPowerState = "unbekannt" End If Case BatteryFlag ' Batteriezustand Select Case .BatteryFlag Case 1 GetPowerState = "Voll" Case 2 GetPowerState = "Niedrig" Case 4 GetPowerState = "Kritisch" Case 8 GetPowerState = "Lädt" Case 128 GetPowerState = "Keine Batterien" Case Else GetPowerState = "unbekannt" End Select Case BatteryPercent ' Restlaufzeit in Prozent If .BatteryLifePercent = 255 Then GetPowerState = "unbekannt" Else GetPowerState = CStr(.BatteryLifePercent) & " %" End If Case BatteryTime ' Restlaufzeit in Stunden If .BatteryLifeTime = -1 Then GetPowerState = "unbekannt" Else GetPowerState = FormatTime(.BatteryLifeTime) & " Std." End If Case BatteryFullTime ' Akku-Gesamtlaufzeit If .BatteryFullLifeTime = -1 Then If .BatteryLifePercent > 0 And .BatteryLifeTime > 0 Then GetPowerState = FormatTime(.BatteryLifeTime / .BatteryLifePercent * 100) & " Std." Else GetPowerState = "unbekannt" End If Else GetPowerState = FormatTime(.BatteryFullLifeTime) & " Std." End If End Select End With End If End Function ' Zeit formatieren Private Function FormatTime(ByVal nSek As Long) As String Dim nStd As Long Dim nMin As Long nStd = Int(nSek / 3600) nSek = nSek - (nStd * 3600) nMin = Int(nSek / 60) FormatTime = CStr(nStd) & ":" & Format$(nMin, "00") End Function Platzieren Sie jetzt auf die Form 5 Label-Controls (Label1 bis Label5), sowie einen CommandButton (Command1). Beim Klick auf den CommandButton soll der aktuelle Batterie-Status in den jeweiligen Label-Controls angezeigt werden. Private Sub Command1_Click() Label1.Caption = "Netzteil: " & GetPowerState(ACPower) Label2.Caption = "Batteriezustand: " & GetPowerState(BatteryFlag) Label3.Caption = "Restzeit in Prozent: " & GetPowerState(BatteryPercent) Label4.Caption = "Restzeit in Std: " & GetPowerState(BatteryTime) Label5.Caption = "Akkut-Gesamtlaufzeit: " & GetPowerState(BatteryFullTime) End Sub Dieser Tipp wurde bereits 21.016 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |