[ASP + COM + VB] Uptime

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Hallo,

Ik heb een uptime dll geschreven in VB.
Nu maak ik gebruik van de TickCount Property. Die waarde die word alleen negatief na een uptime van 24,9 dagen.

Nu wil ik toch een uptime weergeven ook al heb ik mijn server niet gereboot in 24,9 dagen. Hoe kan ik dit oplossen, ik heb namelijk maar een beperkte kennis in VB.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
tja, als je gebruik maakt van tickcount is er weinig aan te doen; na 47,8 dagen zijn de 32 bits op en begint hij weer bij 0.
je zult t dus anders op moeten lossen.
maak bijvoorbeeld een supersimpel progje of stukkie script wat bij het opstarten van windows de huidige datum/tijd ergens wegschrijft (in het register bijvoorbeeld)
op het moment dat je de uptime wilt bekijken vraag je de huidige tijd op en trek je daar je originele timestamp vanaf -> het resultaat is de uptime.
eigenlijk toch wel idioot dat er geen standaard API zou zijn om dit op te vragen. kon hem zo gauw even niet vinden iig...

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Onder win 9x ken ik geen andere manier. Je kunt de teller wel unsigned maken, dan kun je dus 50 dagen tellen. Een win 9x bak die langer dan 50 dagen online blijft :?

Onder NT/2k/XP kun je gebruik maken van pch.dll, waar een uptime counter in zit.

(edit: hmm... waarom ik denk dat die in pch.dll zit weet ik even niet. Ik heb hier geen windows/MSDN bij de hand, maar de functie heet QueryPerformanceCounter... )

edit2: handig linkje: http://www.powerbasic.com...s/Forum7/HTML/000980.html

[ Voor 37% gewijzigd door Pooh op 20-01-2003 21:21 ]


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 15-08 11:47

Sponge

Serious Game Developer

Hmm, je zou ook eventueel naar de datum kunnen kijken van een windowsfile die bij opstarten verandert (bootlog.txt?), en dan met DateDiff() het verschil uitrekenen.

(Ongeveer het zelfde als Gotcha schreef.. )

Check ook Deze site

btw, QueryPerformanceCounter heeft te maken met cycles van je processor, AFAIK, niet met windows uptime...

[ Voor 13% gewijzigd door Sponge op 20-01-2003 21:29 ]


  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

41.6C.6D.61.72 schreef op 20 January 2003 @ 21:28:
btw, QueryPerformanceCounter heeft te maken met cycles van je processor, AFAIK, niet met windows uptime...
Klopt, maar hij begint netjes op 0 bij booten. Check de link die ik gaf, en de MSDN.

Overigens kun je problemen krijgen bij processoren boven de 2.1 Ghz: http://support.microsoft....spx?scid=KB;en-us;327809&

[ Voor 21% gewijzigd door Pooh op 20-01-2003 21:41 ]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Met QueryPerformanceCounter kom je een heel eind, maar ook daar zit een limiet aan (die haal je niet voordat je al lang dood en vergeten bent, maar goed...). Aangezien ik niet zo in het register een boot time kan vinden, lijkt me QPC het beste, ook omdat dit ook in 9x werkt, terwijl een register key misschien niet beschikbaar is onder 9x/NT4.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
thx voor het advies, ik ga zoeken en kijken of het werkt.
laat natuurlijk weten hoe :) (als het werkt dan ;) )

Ik zie nu dat die QueryPerformanceCounter alleen voor C++ is ofzo.
Kan geen VB vinden :(

[ Voor 30% gewijzigd door 4of9 op 21-01-2003 10:09 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:50

Creepy

Tactical Espionage Splatterer

Poohbear schreef op 20 januari 2003 @ 21:05:
Onder NT/2k/XP kun je gebruik maken van pch.dll, waar een uptime counter in zit.

(edit: hmm... waarom ik denk dat die in pch.dll zit weet ik even niet. Ik heb hier geen windows/MSDN bij de hand, maar de functie heet QueryPerformanceCounter... )
PDH.DLL (Performance Data Helper).
Let er wel op dat de PDH standaard NIET bij NT 4 word meegeleverd, maar dat je dan een redistributable dll van MSDN moet downloaden en meeleveren.

Overigens kan je met de PDH veel meer. Ook dingen als CPU usage e.d. kan hier ook mee. Let er wel op dat de counter names in de PDH gebaseerd zijn op de taal van windows (*zucht*). Van alle engelse counter names is wel altijd het ID op te vragen, en dan is a.d.v. dit ID weer de daadwerkelijke countername op te halen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1