[C#] Uptime

Pagina: 1
Acties:

  • Robinski
  • Registratie: September 2000
  • Laatst online: 26-05 00:03

Robinski

A.K.A. RHarmsen

Topicstarter
Om het aantal dagen uptime te berekenen had ik de volgende code in C#:

code:
1
2
3
TimeSpan ts = new TimeSpan(0,0,0,0,Environment.TickCount);
Console.WriteLine(ts.Days.ToString());
Console.WriteLine(ts.Days.ToString());



helaas kwam ik van de week tot de ontdekking dat na +/ 24 dagen
de uptime naar -?? (preciese waarde weet ik niet meer) springt

is hier een betere oplossing voor zodat de uptime langer weergegeven kan worden

ik had ook de volgende code nog gevonden die ga ik ook nog proberen, maar ik heb gehoord dat die na 48 dagen er ook mee stopt

code:
1
2
3
4
int time = Environment.TickCount;
int days = ((time /1000)/3600) / 24;
Console.WriteLine(days);
Console.WriteLine(days);

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Maak van je int is een Int64 B)

  • Robinski
  • Registratie: September 2000
  • Laatst online: 26-05 00:03

Robinski

A.K.A. RHarmsen

Topicstarter
Daar heb ik niet zo veel aan, aangezien ik het niet via een website laat zien.
ik had dit eigenlijk om via MRTG de uptime te laten zien.
dit doe ik door dus de exe aan te roepen die het aantal dagen returnt.
Verwijderd schreef op 02 januari 2004 @ 17:24:
Maak van je int is een Int64 B)
dat werkt helaas ook niet echt, aangezien Tickcount maar 32 bit is

dus wederom de vraag, is er nog een andere methode om de uptime van je PC te bepalen?

ik heb al goed gezocht, maar ik kon niks vinden, alleen de TickCount methode.

het is wel maf, aangezien microsofts uptime.exe wel verder gaat. anders moet ik daar maar eens een wrapper omheen bouwen denk ik.

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


Verwijderd

Er is ook nog een performance counter die de uptime van het systeem in seconden weergeeft. 2^32'e seconden is wel langer dan 48 dagen, dus daarmee moet je vast wel vooruit kunnen....

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 13:22
wat je ook kan doen is je modified date van je pagefile.sys opvragen, en dit vergelijken met de huidige datum. Is natuurlijk niet echt foolproof enzo ;)

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Verwijderd

Je kan ook met behulp van WMI de uptime ophalen, door iets te doen als:

C#:
1
2
3
System.Diagnostics.PerformanceCounter counter = new System.Diagnostics.PerformanceCounter("System", "System Up Time");
counter.NextValue();
TimeSpan uptime = TimeSpan.FromSeconds(counter.NextValue());


Verder zou je eventueel ook 'systeminfo.exe' kunnen uitvoeren, en in de output daarvan uitlezen wat de uptime is (wat overigens niet de meest elegante oplossing is ;)).

  • Robinski
  • Registratie: September 2000
  • Laatst online: 26-05 00:03

Robinski

A.K.A. RHarmsen

Topicstarter
Verwijderd schreef op 03 januari 2004 @ 22:30:
Je kan ook met behulp van WMI de uptime ophalen, door iets te doen als:

C#:
1
2
3
System.Diagnostics.PerformanceCounter counter = new System.Diagnostics.PerformanceCounter("System", "System Up Time");
counter.NextValue();
TimeSpan uptime = TimeSpan.FromSeconds(counter.NextValue());


Verder zou je eventueel ook 'systeminfo.exe' kunnen uitvoeren, en in de output daarvan uitlezen wat de uptime is (wat overigens niet de meest elegante oplossing is ;)).
Die WMI methode had ik zo ongeveer ook gevonden, alleen dan voor C++
hierbij viel de term PDH.
helaas kreeg ik dit niet werkend.

deze methode lijkt wel goed te werken. op naar de 50 dagen uptime om te testen :D

Thanx iig

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput

Pagina: 1