AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Uptime Funktion > 49 Tage!

Ein Thema von Kidix · begonnen am 10. Mai 2005 · letzter Beitrag vom 11. Mai 2005
Antwort Antwort
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#1

Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:00
Hi,


kennt jemand ne wirklich funktionierende Funktion zur Uptimeberechnung > 49 Tage?

Gruß

Kidix
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:07
Link
Lernt doch mal suchen, dafür gibts solche Funktionen...
  Mit Zitat antworten Zitat
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#3

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:22
Ganz ehrlich, hiernach sucht doch keiner!

Zitat:
Beschränkung von GetTickCount umgehen
Kidix
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:33
wonach hast du denn zuerst gsucht?

und hast du da beim link was gefunden?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#5

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:38
Nicht wirklich, die eine Function ist nur für Nt, die andere muss mindestens alle 49 Tage einmal aufgerufen werden!


Kidix
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:41
Kuck mal ganz ans Ende des Threads. Da ist eine Funktion, die nicht nur auf NT läuft und die nicht alle 49 Tage aufgerufen werden muss. Und jetzt sag nicht, der Rechner kann kein QueryPerformanceCounter, dann läuft er nie lang genug, um die 49,7-Tage-Grenze zu sprengen. Dafür wär er zu alt und das ausgeführte Windows wohl entsprechend instabil.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

Re: Uptime Funktion > 49 Tage!

  Alt 10. Mai 2005, 21:53
Hey! warum hat M$ eigentlich diese "Funktion", Fehler, Bug oder nennt es wie ihr wollt mir den 49 Tagen eingebaut, bzw duch was wird das bedingt?!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#8

Re: Uptime Funktion > 49 Tage!

  Alt 11. Mai 2005, 07:57
Zitat von s.h.a.r.k:
Hey! warum hat M$ eigentlich diese "Funktion", Fehler, Bug oder nennt es wie ihr wollt mir den 49 Tagen eingebaut, bzw duch was wird das bedingt?!
In 32-Bit passen nicht mehr Informationen als 32-Bit. Und da die Auflösung des Timers bei GetTickCount eine Millisekunde ist, reichen die 32 Bit zur Darstellung von 49.7 Tagen.

ps: die Unit die ich dort geschrieben habe ist für WinNT, Win9x und Linux (Lesen statt Überfliegen hätte geholfen ).

Zitat von Dax:
Und jetzt sag nicht, der Rechner kann kein QueryPerformanceCounter, dann läuft er nie lang genug, um die 49,7-Tage-Grenze zu sprengen. Dafür wär er zu alt und das ausgeführte Windows wohl entsprechend instabil.
Ich bin da anderer Ansicht
Aber meine 9x-Version liesse sich mit deinem Code deutlich verbessern (natürlich mit Abfrage, ob QueryPerformanceCounter auch unterstützt wird ).
  Mit Zitat antworten Zitat
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#9

Re: Uptime Funktion > 49 Tage!

  Alt 11. Mai 2005, 12:28
Also diese Function macht nicht wirklich das was sie soll.

Zähler bleibt permanent auf 22 Sekunden stehen!

Delphi-Quellcode:
var
  QPF: Int64 = 0;

function GetTickCountEx: TUpTime;
begin
  if QPF = 0 then
    QueryPerformanceFrequency(QPF);
  QueryPerformanceCounter(Ticks);
  if (QPF = 0) or (Ticks = 0) then
  begin
    Result.Milliseconds := Word(-1);
    Exit;
  end;
  Ticks := Ticks div QPF;

  with Result do
  begin
    MilliSeconds := Ticks mod 1000;
    Seconds := (Ticks div 1000) mod 60;
    Minutes := (Ticks div 60000) mod 60;
    Hours := (Ticks div 3600000) mod 24;
    Days := ((Ticks div 3600000) div 24) mod 30;
    Months := ((Ticks div 3600000) div 24) div 30;
    Years := ((Ticks div 3600000) div 24) div 365;
  end;
end;
Kidix

P.S. Ok, die einheiten sind Falsch, auf Milliseconds kann im obigen Code nicht zugegriffen werden, da er die sekundenzahl auswirft!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz