Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как долго запущена Windows?

01.01.2007

Ниже приведён код обработчика события OnClick для Button1. Он показывает диалоговое окошко с текстом в следующем формате

Windows started on Thursday, February 10, 2000 at 11:42:46 AM

Its been up for 0 days, 3 hours, 22 minutes, 54 seconds

procedure TForm1.Button1Click(Sender: TObject); 
var
  ndays
: double;
  ticks
: LongInt;
  btime
: TDateTime;
begin
 
{Функция GetTickCount получает количество миллисекунд, прошедших с момента старта Windows}
  ticks
:= GetTickCount;
 
 
{Чтобы получить дни, необходимо разделить на количество миллисекунд в дне, 24*60*60*1000=86400000}
  ndays
:= ticks/86400000;
 
 
{теперь вычитаем из текущей даты полученное количество дней работы Windows}
  bTime
:= now-ndays;
 
 
{показываем диалоговое окошко с сообщением}
 
ShowMessage(
   
FormatDateTime('"Windows started on" dddd, mmmm d, yyyy, ' +
                 
'"at" hh:nn:ss AM/PM', bTime) + #10#13 +
   
'Its been up for ' + IntToStr(Trunc(nDays)) + ' days,' +
   
FormatDateTime(' h "hours," n "minutes," s "seconds"',ndays));
end;

Взято из https://forum.sources.ru


function UpTime: string;
 
const
   ticksperday
: Integer    = 1000 * 60 * 60 * 24;
   ticksperhour
: Integer   = 1000 * 60 * 60;
   ticksperminute
: Integer = 1000 * 60;
   tickspersecond
: Integer = 1000;
 
var
   t
:          Longword;
   d
, h, m, s: Integer;
 
begin
   t
:= GetTickCount;
 
   d
:= t div ticksperday;
   
Dec(t, d * ticksperday);
 
   h
:= t div ticksperhour;
   
Dec(t, h * ticksperhour);
 
   m
:= t div ticksperminute;
   
Dec(t, m * ticksperminute);
 
   s
:= t div tickspersecond;
 
   
Result := 'Uptime: ' + IntToStr(d) + ' Days ' + IntToStr(h) + ' Hours ' + IntToStr(m) +
     
' Minutes ' + IntToStr(s) + ' Seconds';
 
end;
 
 
 procedure TForm1
.Button1Click(Sender: TObject);
 
begin
   label1
.Caption := UpTime;
 
end;

Взято с сайта: https://www.swissdelphicenter.ch


Автор: Павел

Чтобы определить сколько времени прошло с момента последней перезагрузки системы необходимо воспользоваться функцией GetCurrentTime: LongInt;

Возвращаемое значение: время в миллисекундах.

Пример использования:

Edit1.Text := FloatToStr(GetCurrentTime / 1000) + ' секунд с момента перезагрузки';

https://delphiworld.narod.ru/

DelphiWorld 6.0