-
tippa (17.03.10 20:55) [0]Подскажите универсальный способ узнать, сколько времени прошло со старта системы. Сделал черезtime := GetTickCount;
но тогда счетчик миллисекунд будет обнуляться каждае 50 дней. А система может работать и весь год. -
tippa (17.03.10 21:12) [1]в реестре ключь тоже обнуляется через 50 дней?HKEY_PERFORMANCE_DATA
-
Игорь Шевченко © (17.03.10 21:13) [2]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 -
через WMI еще можно
http://blogs.clearscreen.com/dtax/archive/2007/01/19/5985.aspx
А можно еще перенаправить и пропарсить вывод net stats srv, но это правда извращение. -
Германн © (18.03.10 02:18) [4]
> которое BootTime - это время загрузки в 100-нс
Интересно кто придумал сей бред? И почему? -
Anatoly Podgoretsky © (18.03.10 09:36) [5]> Германн (18.03.2010 02:18:04) [4]
Потому что, это используется для отсчета не только загрузки. -
brother © (18.03.10 09:37) [6]> не только загрузки.
это имхо или можно "например"? -
Дмитрий С © (18.03.10 10:37) [7]GetTickCount64
-
Anatoly Podgoretsky © (18.03.10 12:29) [8]> brother (18.03.2010 09:37:06) [6]
Во многих местах используется в Виндоус. Даже в SQL серверах -
tippa (18.03.10 15:18) [9]спасибо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);