ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 06.12.2001

Diese Seite wurde zuletzt aktualisiert am 06.12.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Startzeit ermitteln

Zurück...


Anzeige

(-hg) mailto:hg_sysstart@aboutvb.de

Interessiert es Sie, wann ein Windows-System gestartet worden ist, oder wie lange es schon läuft? In Millisekunden ist letzteres leicht in Erfahrung zu bringen - die API-Funktion GetTickCount liefert diesen Wert - im Prinzip. Denn nach etwa 49,7 Tagen wird der Wert auf 0 zurückgesetzt, da der vorzeichenlose Long-Wert überläuft. Wenn Sie mit dieser Einschränkung leben können, liefert ihnen die folgende Funktion SysStartDateTime Datum und Uhrzeit des letzten Systemstarts.

Private Declare Function GetTickCount Lib "kernel32" () As Long

Public Function SysStartDateTime() As Date
  Dim nSeconds As Variant
  Dim nDays As Long
  Dim nDayNow As Long
  
  Const kDaySeconds = 86400
  
  nSeconds = _
   Int(CDec(GetTickCount() - (Timer * 1000&)) / CDec(1000&))
  nDayNow = CLng(CDbl(Now))
  nDays = Int(CDec(nSeconds) / CDec(kDaySeconds))
  nSeconds = nSeconds - (CDec(nDays) * CDec(kDaySeconds))
  SysStartDateTime = _
   CDate(nDayNow - nDays - TimeSerial(0, 0, nSeconds))
End Function

Eine kleine Anmerkung zum Code der Funktion: Um Rundungsfehler zu vermeiden, wird von der Millisekundenzeit, die GetTickCount liefert, der VB-eigene Millisekunden-Wert (Timer * 1000, Messung seit letzter Mitternacht)) abgezogen. Zum Ausgleich wird bei der abschließenden Berechnung in der letzten Zeile nur der Tagesanteil des aktuellen Datums (nDayNow) verwendet.

Die folgende Funktion SysTimeRunning wandelt den von SysStartDateTime gelieferten Date-Wert zur Anzeige in die Anzahl der Tage und einen Zeit-String um.

Public Sub SysTimeRunning(SysStartDateTime As Date, Days As Long, _
 HMS As String)

  Dim nDiff As Date
  
  nDiff = Now - SysStartDateTime
  Days = CLng(CDbl(nDiff))
  HMS = Format$(nDiff, "hh:nn:ss")
End Sub

Modul modSysStart (modSysStart.bas - ca. 1 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer