Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Время работы процесса !   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
1-1137769002
Tristania
2006-01-20 17:56
2006.02.19
Работа с msi-форматом и инсталляция программы


6-1129584213
Lord_of_Darkness
2005-10-18 01:23
2006.02.19
Рдновременный прием TServerSocket ом файлов от нескольких клиенто


15-1138297247
Хинт
2006-01-26 20:40
2006.02.19
Вопрос по HTML


2-1139037081
prep000
2006-02-04 10:11
2006.02.19
Как вставить в форму системное время?


15-1138799384
Kerk
2006-02-01 16:09
2006.02.19
IP-адреса прокси-сервера здания Конгресса будут заблокированы