![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
uptime системы
tippa © (2010-03-17 20:55:00)Подскажите универсальный способ узнать, сколько времени прошло со старта системы. Сделал через
time := GetTickCount;
но тогда счетчик миллисекунд будет обнуляться каждае 50 дней. А система может работать и весь год.
tippa (2010-03-18 15:18:00) [1]спасибо
NtQuerySystemInformation(3, @s,sizeof(SYSTEM_TIME_OF_DAY_INFORMATION),nil);
n:=s.CurrentTime.QuadPart-s.BootTime.QuadPart;
n:=round(n/10000000);//сколько секунд работает система
Label1.Caption := inttostr(n);
Anatoly Podgoretsky (2010-03-18 12:29:00) [2]> brother (18.03.2010 09:37:06) [6]
Во многих местах используется в Виндоус. Даже в SQL серверах
Дмитрий С (2010-03-18 10:37:00) [3]GetTickCount64
brother (2010-03-18 09:37:00) [4]> не только загрузки.
это имхо или можно "например"?
Anatoly Podgoretsky (2010-03-18 09:36:00) [5]> Германн (18.03.2010 02:18:04) [4]
Потому что, это используется для отсчета не только загрузки.
Германн (2010-03-18 02:18:00) [6]
> которое BootTime - это время загрузки в 100-нс
Интересно кто придумал сей бред? И почему?
DVM (2010-03-17 21:16:00) [7]через WMI еще можно
http://blogs.clearscreen.com/dtax/archive/2007/01/19/5985.aspx
А можно еще перенаправить и пропарсить вывод net stats srv, но это правда извращение.
Игорь Шевченко (2010-03-17 21:13:00) [8]NtQuerySystemInformation (SystemTimeOfDayInformaton, ...
заполняет такую структуру:
SYSTEM_TIME_OF_DAY_INFORMATION = packed record
BootTime: LARGE_INTEGER;
CurrentTime: LARGE_INTEGER;
TimeZoneBias: LARGE_INTEGER;
CurrentTimeZoneId: ULONG;
Reserved: ULONG;
end;
которое BootTime - это время загрузки в 100-нс начиная с 1601 года.
SystemTimeOfDayInformation = 3
tippa (2010-03-17 21:12:00) [9]в реестре ключь тоже обнуляется через 50 дней?
HKEY_PERFORMANCE_DATA