Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.051 c
15-1138106652
Prospect
2006-01-24 15:44
2006.02.19
Дайте рекомендации, плз.


15-1138532742
ferr
2006-01-29 14:05
2006.02.19
Регулярное выражение.


1-1137598194
tex
2006-01-18 18:29
2006.02.19
Ошибка - Call was rejected by callee


2-1138784272
dabreezy
2006-02-01 11:57
2006.02.19
Вопрос по TiniFile


2-1138532375
einstein
2006-01-29 13:59
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский