Форум: "WinAPI";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизВремя работы процесса ! Найти похожие ветки
← →
psa247 © (2005-12-05 11:23) [0]Как узнать время работы процесса?
Делаю через CreateTime(NTQuerySystemInformation).
Хочу найти разницу между GetTickCount и Create_Time, допустим, в миллисекундах.
Проблема с переводом из Large_Integer в удобочитаемое представление, выдает очень большое число по сравнению с тем, что должно быть.
← →
BiN © (2005-12-05 11:33) [1]GetProcessTimes
← →
Anatoly Podgoretsky © (2005-12-05 11:34) [2]Время работы процессора можно узнать с помощью RDTSC или QueryPerformanceCounter
← →
Anatoly Podgoretsky © (2005-12-05 11:35) [3]Пврдон, перепутал процесс с процессором
GetThreadTimes
← →
psa247 © (2005-12-05 11:37) [4]
> BiN © (05.12.05 11:33) [1]
Ok, попробую...
← →
psa247 © (2005-12-05 12:20) [5]Не получается:
hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, ProcessId);
GetProcessTimes(hProcess,Creat,Exi,Kern,User);
cur:= creat.dwLowDateTime + Creat.dwHighDateTime * DWORD(-1);
T:= (GetTickCount - cur) / MSecsPerDay;
d:= Trunc(T);
DecodeTime(T-d, h, m, s, msec);
tmp:= Format("%2d д %2d:%2d:%2d", [d, h, m, s]);
?
Там еще что-то написано про 100 нсек... не понял
← →
BiN © (2005-12-05 12:38) [6]FileTimeToSystemTime
← →
psa247 © (2005-12-05 13:03) [7]
> BiN ©function ProcessWorkTime(Pr_ID : cardinal): string;
var hProcess : THandle;
cur : cardinal;
T : TDateTime;
d, h, m, s, msec : Word;
ftKernel, ftUser, ftCreate, ftExit, ftLocal : TFILETIME;
stLocal : TSYSTEMTIME;
begin
hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, Pr_Id);
GetProcessTimes(hProcess,ftCreate,ftExit,ftKernel,ftUser);
cur:= ftCreate.dwLowDateTime + ftCreate.dwHighDateTime * DWORD(-1);
CloseHandle(hProcess);
// FileTimeToLocalFileTime(ftCreate, ftLocal);
FileTimeToSystemTime(ftLocal, stLocal);
{ T:= (GetTickCount - Cardinal(cur)) / (MSecsPerDay);
d:= Trunc(T);
DecodeTime(T-d, h, m, s, msec);
}
d:= stLocal.wDay;
h:= stLocal.wHour;
m:= stLocal.wMinute;
s:= stLocal.wSecond;
Result:= Format("%02d д %02d:%02d:%02d", [d, h, m, s]);
end;
← →
psa247 © (2005-12-05 13:21) [8]
> psa247 © (05.12.05 13:03) [7]
Показывает, что процесс запущен дней 20 назад
← →
psa247 © (2005-12-05 13:31) [9]Нашел ошибку. Спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.057 c