Rubrik: System/Windows · Sonstiges | VB-Versionen: VB6 | 20.08.04 |
Wann wurde Windows gestartet? Dieser Tipp verrät, wie sich ermitteln lässt, wann Windows gestartet wurde und wie lange die aktuelle Windows-Sitzung schon läuft. | ||
Autor: Dieter Otter | Bewertung: | Views: 11.658 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Heute zeigen wir Ihnen, wie sich ermitteln lässt, wann Windows gestartet wurde. Hierzu greifen wir auf die GetTickCount-Funktion aus dem Windows-API zurück, die uns die Zeit seit dem letzten Windowsstart in Millisekunden liefert.
Option Explicit ' Benötigt API-Deklarationen Private Declare Function GetTickCount Lib "kernel32" () As Long
' Emitteln, wann Windows gestartet wurde ' Rückgabe erfolgt als Datum mit Uhrzeitangabe Public Function SysStartDateTime() As Date Dim nSeconds As Variant nSeconds = GetTickCount() / 1000 SysStartDateTime = DateAdd("s", -nSeconds, Now) End Function
Die zweite Funktion rechnet die aktuelle Windows-Laufzeit in Tage, Stunden und Minuten um:
' Ermitteln, wie lange Windows schon läuft ' (Rückgabe im Format: Tage, Stunden, Minuten Public Function SysTimeRunning() As String Dim nSeconds As Variant Dim vDate As Variant Dim nDays As Long Dim nHours As Long Dim nMin As Long nSeconds = GetTickCount() / 1000 vDate = DateAdd("s", -nSeconds, Now) ' Tage nDays = DateDiff("d", vDate, Now) If nDays > 0 Then vDate = DateAdd("d", nDays, vDate) End If ' Stunden nHours = DateDiff("h", vDate, Now) If nHours > 0 Then vDate = DateAdd("h", nHours, vDate) End If ' Minuten nMin = DateDiff("n", vDate, Now) If nMin < 0 Then nHours = nHours - 1 nMin = 60 - Abs(nMin) End If SysTimeRunning = CStr(nDays) & " Tag(e), " & _ CStr(nHours) & " Stunde(n) und " & _ CStr(nMin) & " Minuten(n)" End Function