Як отримати% завантаження процесора конкретним додатком

Як отримати% завантаження процесора конкретним додатком?

Потрібно стежити за активністю додатки і через заданий час якщо додаток простоює, то завершити його. Я так розумію мені потрібно то про що йдеться в темі?
Ім'я процесу я можу отримати, а також його ID. Як мені дізнатися
%? Або може є які-небудь інші способи відстеження активності програми?

Заздалегідь вдячний за допомогу.

С ув. Ігор Новосьолов
ICQ. 46732777

Можна подивитися в реєстрі (HKEY_DYN_DATA, а далі ще щось), але там інформація неправильна. У всякому разі у мене в 98SE і в ME було так.

Щось я не знайшов ключа HKEY_DYN_DATA в реєстрі w2k.

Мені здається, можна спробувати GetProcessTimes.
Тобто, наприклад, отримати User Time + Kernel Time для всіх запущених процесів за який - то проміжок часу і порівняти з такою ж сумою для нашого процесу.

Може, є спосіб краще?

Спробував я User Time + Kernel Time за проміжок часу.
Ідея непогана. тільки для того щоб підрахувати% потрібно знати
також час бездіяльності системи. А як його визначити не знаю.

А навіщо потрібен час бездіяльності? Адже нас цікавить відносна завантаження процесора.

Але може, в даному випадку "бездіяльність" процесу спробувати детектувати за допомогою WaitForInputIdle?

Так але якщо всі процеси стоять то User Time + Kernel Time і них
не змінюється і це значить що ставлення User Time + Kernel Time необхідного процесу до User Time + Kernel Time всіх процесів незмінно і одно якогось значенням (НЕ 0). А насправді процес варто. Ось і думаю, що до User Time + Kernel Time всіх
процесів потрібно додати Idle ( "бездіяльність системи") тоді і вийде реальна цифра. хоча може і помиляюся.

Я думав дивитися не просто User Time + Kernel Time, а як змінюється ця сума за довільний проміжок часу. Тобто, якщо сума не змінилася, то процес простоює (може бути, і разом з усіма іншими) і його треба завершувати.
Все залежить від того, що потрібно. Якщо критерієм для "вбивства" процесу є просто його "простий", то IMHO краще всього використовувати WaitForInputIdle.

За допомогою API - ф-ції FileTimeToSystemTime отримуємо стр-ру TSystemTime, де час в "нормальному" вигляді.
Якщо треба ще якось з ним попрацювати, складати або віднімати, можна скористатися дельфійським типом TDateTime і SysUtils - івської SystemTimeToDateTime.

Пам'ять: 0.74 MB
Час: 0.036 c