Ermitteln wie lange Windows läuft



  • float running_windows()
    {
    int day,hour,min,sec,ms;
    
          ms = GetTickCount();
          sec = ms * 1000;
          min = ms * (sec * 60);
          hour = ms * (min * 60);
          day = ms * (hour * 24);
    
    printf ("Day: %d,Hour: %d,Minute: %d,Second %d,Millisecond: %d\n",day,hour,min,sec,ms);  
    }
    

    Diese Funktion klappt leider nicht so wirklich.....
    Und was daran falsch ich weißch auch nicht wirklich.....
    Könnte mir jemand ein bissle unter die Arme greifen?



  • Was heißt das? Klappt nicht!? Was klappt nicht? Fehlermeldung(en)? Wenn ja, welche?
    Man kann auch aus der Registry auslesen wie lange Windows läuft, wenn mich nicht alles täuscht. Klappt das überhaupt prinzipiell mit GetTickCount() das herauszubekommen?


  • Mod

    Die Rechnung ist ja auch absolut unsinnig:
    float running_windows()
    {
    int day,hour,min,sec,ms;

    ms = GetTickCount();
    sec = (ms / 1000) % 60;
    min = (ms / 1000 / 60) % 60;
    hour = (ms / 1000 / 60 / 60) % 24;
    day = (ms / 1000 / 60 / 60 / 24) ;
    ms = ms % 1000;

    printf ("Day: %d,Hour: %d,Minute: %d,Second %d,Millisecond: %d\n",day,hour,min,sec,ms);
    }



  • Schau hier nach: http://blogs.msdn.com/gusperez/articles/91734.aspx Da gibt die Sourcen zu.



  • GetTickCount geht nur bis ca 50 Tage. Das sollte man also besser nicht verwenden.



  • getchat schrieb:

    float running_windows()
    {
    int day,hour,min,sec,ms;
    
          ms = GetTickCount();
          sec = ms * 1000;
          min = ms * (sec * 60);
          hour = ms * (min * 60);
          day = ms * (hour * 24);
          
    printf ("Day: %d,Hour: %d,Minute: %d,Second %d,Millisecond: %d\n",day,hour,min,sec,ms);  
    }
    

    Diese Funktion klappt leider nicht so wirklich.....
    Und was daran falsch ich weißch auch nicht wirklich.....
    Könnte mir jemand ein bissle unter die Arme greifen?

    GetTickCount Function

    Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days.

    Ist doch klar was das heißt, oder?
    Wenn du deinen PC einen Tag lang an hast, kommst sowas hier raus:
    ->86400000
    Problem: Wenn du das Teil noch erweiterterst, ist es doch klar, dass du nicht auf das richtige Ergebnis kommst, sowas lernst man in der 7. Klasse Physik mit, soweit ich weiß.^^
    Also wenn du wissen willst wie viele Tage dein PC läuft musst du die Zahl t(86400000) durch eine Zahl x teilen:
    t/x-> t/(1000*60*6024)
    Wenn du wissen willst, wie viele Minuten seitdem vergangen sind:
    t/x -> t/(1000*60*60)
    usw.
    (ms*s*min
    h)
    [e] lol, da war ich mal echt viel langsamer, als die anderen...



  • Der offizielle Weg ist das Ereignis-Protokoll zu durchsuchen!

    Siehe:
    http://support.microsoft.com/kb/232243/en-us
    http://support.microsoft.com/kb/196452/en-us



  • sind die seiten nur bei mir blank?



  • #include <time.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int runtime = 0;
    	while(1) {
    		runtime++;
    		Sleep(1000);
    		printf("Windows läuft seit %i Sekunden\n", runtime);
    	}
    	return 0;
    }
    

Anmelden zum Antworten