Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Синтаксис , Дата и Время

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


- Э, простите, а сколько занимает виндовс?
- Сколько находит - столько и занимает...


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;

Программа на Delphi, которая рассчитывает, сколько времени прошло с момента запуска Windows.

Обзор кода:

  1. Функция GetTickCount вызывается для получения количества миллисекунд, прошедших с момента запуска Windows.
  2. Количество дней вычисляется путем деления количества миллисекунд на 86400000, что равно количеству миллисекунд в дне (24 часа * 60 минут * 60 секунд * 1000 миллисекунд).
  3. Текущая дата и время вычитываются из результата для получения даты и времени, когда Windows запустился.
  4. Диалоговое сообщение отображается с результатом, форматированным как строка с помощью FormatDateTime. Сообщение включает в себя дату и время, когда Windows запустился, а также количество дней, прошедших с момента запуска.

Вывод будет выглядеть примерно так:

"Windows started on Friday, January 1, 2022, at 12:00:00 AM" "It's been up for 365 days, 23 hours, 45 minutes"

Обратите внимание, что функция GetTickCount возвращает количество миллисекунд с момента запуска Windows, поэтому результат будет приблизительным. В действительности время может прошло быстрее или медленнее из-за различных факторов, таких как загрузка системы и дрейф часов.

Альтернативным решением является использование функции GetSystemTimeAdjustment для получения более точного оценки времени работы. Функция возвращает количество миллисекунд, на которое система часы были корректированы с момента последней перезагрузки.

Пример кода:

uses WinAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
  ticks: LongInt;
  btime: TDateTime;
begin
  ticks := GetTickCount;
  bTime := now - (ticks / 1000); // Convert milliseconds to seconds

  ShowMessage(
    FormatDateTime('"Windows started on" dddd, mmmm d, yyyy, ' +
                      '"at" hh:nn:ss AM/PM', bTime) + #10#13 +
     'It''s been up for ' + IntToStr(Trunc((now - bTime).TotalDays)) + ' days');
end;

Код использует функцию GetTickCount для получения количества миллисекунд с момента запуска Windows, а затем конвертирует его в секунды. Затем вычисляется время, когда Windows запустился, путем вычитания результата из текущей даты и времени. Остальная часть кода остается прежней.

В статье описывается программный код на языке Delphi, который позволяет рассчитать время работы Windows с момента его запуска и отобразить это время в диалоговом окне.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Дата и Время ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:16:25/0.0057351589202881/1