Главная страница
    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.46 MB
Время: 0.028 c
2-1138936625
Silver__Dragon
2006-02-03 06:17
2006.02.19
разделение звука на потоки


2-1138912475
HITMAN
2006-02-02 23:34
2006.02.19
ListBox1 Ошибку не магу не обойти


2-1138351597
СержК
2006-01-27 11:46
2006.02.19
Как грамотно остановить, убить поток


4-1133714790
Volf_555
2005-12-04 19:46
2006.02.19
Как определить количество файлов, помещённых на значок программы?


3-1135252523
VeB
2005-12-22 14:55
2006.02.19
Автоматизировать ввод данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский