Comment puis-je coder pour voir combien de temps l'ordinateur a été allumé.Disponibilité du système dans Delphi 2009
Exemples simples de code si possible.
Comment puis-je coder pour voir combien de temps l'ordinateur a été allumé.Disponibilité du système dans Delphi 2009
Exemples simples de code si possible.
Vous utilisez la fonction GetTickCount voir cet exemple.
program Ticks;
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils;
function TicksToStr(Ticks: Cardinal): string; //Convert Ticks to String
var
aDatetime : TDateTime;
begin
aDatetime := Ticks/SecsPerDay/MSecsPerSec;
Result := Format('%d days, %s', [Trunc(aDatetime), FormatDateTime('hh:nn:ss.z', Frac(aDatetime))]) ;
end;
begin
try
Writeln('Time Windows was started '+ TicksToStr(GetTickCount));
Readln;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
MISE À JOUR
pour obtenir les informations dans un autre format que doit modifier cette ligne,
Result := Format('%d days, %d hours %d minutes %d seconds ', [Trunc(aDatetime), HourOf(aDatetime),MinuteOf(aDatetime),SecondOf(aDatetime) ]) ;
et ajoutez l'unité DateUtils.
Notez que GetTickCount n'est pas vraiment conçu pour la précision.
Pour le moment plus fiable, utilisez les QueryPerformanceCounter et QueryPerformanceFrequency appels api:
function SysUpTime : TDateTime;
var
Count, Freq : int64;
begin
QueryPerformanceCounter(count);
QueryPerformanceFrequency(Freq);
if (count<> 0) and (Freq <> 0) then
begin
Count := Count div Freq;
Result := Count/SecsPerDay;
end
else
Result := 0;
end;
Exactement à quel point votre mesure de disponibilité doit-elle être "précise"?!? –
Pas vraiment vraiment - dépend de ce qu'il veut l'utiliser pour. J'ai l'impression de me rappeler que quelqu'un a dit que GetTickCount pouvait manquer des millsecondes, mais je n'ai aucune preuve de cela - rétrospectivement, je suppose que c'était un non-sens. –
Les résolutions GetTickCount sont généralement [10ms ou 16ms] (https://msdn.microsoft.com/pl-pl/library/windows/desktop/ms724408%28v=vs.85%29.aspx) mais je ne pense pas que compte dans la gamme de jours. – Wodzu
Cest bon pour quand, mais je dois combien de temps comme 4 jours 3 heures 2 min u voir ce que je veux dire –
Pas que je sache Delphi, mais on dirait qu'il a ça là. – jprete
@Jim: Jours suivis par hh: mm: ss.z est clairement ce que vous voulez. –