Главная страница
    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.046 c
1-1137758963
jiurasdad
2006-01-20 15:09
2006.02.19
Как послать нажатие клавишь в другое приложение


6-1131213238
Volf_555
2005-11-05 20:53
2006.02.19
Как до закачки файла из сети, определить его размер


3-1135237012
krb
2005-12-22 10:36
2006.02.19
Импорт из db-Vista


15-1138389157
tesseract
2006-01-27 22:12
2006.02.19
Проблемы у Reactos


3-1135146531
epolyak
2005-12-21 09:28
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский