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.015 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. 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 Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access |
||||||||||||||||
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. |