Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Grabber2006

Ветеран


Сообщения: 5064
Благодарности: 1154

Профиль | Отправить PM | Цитировать


Без украшалок в Win7 так.

Кстати, GetTickCount64 только под Vista, 7, 2008 есть. В XP чтобы нормальное время узнать (если больше 49 дней), то надо через HKEY_PERFORMANCE_DATA\System\System Up Time или NtQuerySystemInformation

Интересно:

NtQuerySystemInformation

заполняет такую структуру:

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


Delphi:

Код: Выделить весь код
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);
Исходники для Lazarus и прога (до 49 дней)

Последний раз редактировалось Grabber2006, 31-05-2011 в 17:03.


Отправлено: 16:57, 31-05-2011 | #20