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.006 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. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! 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. |