ElapsedMilliseconds() - Problem mit zu lang laufendem System

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Re: ElapsedMilliseconds() - Problem mit zu lang laufendem System

Beitrag von Programie »

Also bisher habe ich die Laufzeit des Servers immer aus der Verbindungszeit der LAN-Verbindung ausgelesen, da bei einem Server ja normalerweise die LAN-Verbindung nicht getrennt wird. ;)
Aber das wird wohl auch kein richtiges Ergebnis sein. Es kann ja auch mal sein, dass die LAN-Verbindung z.B. durch ein Update neugestartet wird...

Dann werde ich es eben mit dem Mini-Autostart-App machen.
BildBildBildBild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ElapsedMilliseconds() - Problem mit zu lang laufendem System

Beitrag von Kiffi »

@Programie:

hier noch eine Möglichkeit, die Bootzeit via WMI zu ermitteln:

Code: Alles auswählen

; dieses Beispiel benötigt COMatePLUS von srod:
; http://www.purecoder.net/comate.htm

IncludePath #PB_Compiler_Home + "srod\COMatePLUS\" ; Pfad anpassen!
XIncludeFile "COMatePLUS.pbi" 

Define objWMIService.COMateObject
Define colOperatingSystems.COMateEnumObject 
Define objOperatingSystem.COMateObject
Define strComputer.s

strComputer = "." 

objWMIService = COMate_GetObject("winmgmts:\\" + strComputer + "\root\cimv2", "") 
If objWMIService 
  colOperatingSystems = objWMIService\CreateEnumeration("ExecQuery('Select * FROM Win32_OperatingSystem')") 
  If colOperatingSystems 
    objOperatingSystem = colOperatingSystems\GetNextObject() 
    While objOperatingSystem 
      
      Debug "LastBootUpTime: " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", ParseDate("%yyyy%mm%dd%hh%ii%ss", Left(objOperatingSystem\GetStringProperty("LastBootUpTime"), 14)))
      
      objOperatingSystem\Release() 
      objOperatingSystem = colOperatingSystems\GetNextObject() 
    Wend 
    colOperatingSystems\Release() 
  EndIf 
  objWMIService\Release()  
EndIf
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Re: ElapsedMilliseconds() - Problem mit zu lang laufendem System

Beitrag von Programie »

@Kiffi: Ich weiß nicht wie du das immer schaffst: Das funktioniert! :allright:

Bild

Vielen Dank! :praise:


//EDIT: Ich würde jetzt ja gern an den Thementitel "[gelöst]" oder so anhängen, aber da passt nichts mehr drann. :mrgreen:
BildBildBildBild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: ElapsedMilliseconds() - Problem mit zu lang laufendem System

Beitrag von bobobo »

die letzte Startzeit aus dem Eventlog ginge wohl auch ..
(wie war das gleich mit dem Auslesen des Eventlogs ... ??) mit einem alten pbosl ging das mal..
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Sicro
Beiträge: 963
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: ElapsedMilliseconds() - Problem mit zu lang laufendem System

Beitrag von Sicro »

So könnte man es auch machen:

Code: Alles auswählen

Procedure.q ElapsedSeconds()
  If QueryPerformanceCounter_(@Counter.q)
    QueryPerformanceFrequency_(@Frequence.q)
    ProcedureReturn Counter / Frequence
  Else
    ProcedureReturn #False
  EndIf
EndProcedure
Mfg Sicro
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Antworten