2009-12-14 3 views
1

Как рассчитать общее время выполнения каждого приложения Win (процесс) с группой в день.Времена процессов

Например: процесс - notepad.exe - 10 минут сегодня (в общей сложности)

ответ

4

Я хотел бы использовать запрос WMI против Win32_Process и получить значение CreationDate которое согласно MSDN является дата (и время) начался процесс.

Хорошая библиотека для Delphi доступна от Magenta Systems. Эта библиотека содержит несколько примеров, которые помогут вам начать работу.

Это только отслеживает текущие процессы. Если вы хотите отслеживать процессы, которые запускались один раз, но больше не выполняются, вам нужно подключиться к окнам, чтобы вы были уведомлены при каждом запуске приложения. Одним из примеров этого может быть использование CBT hooks (обучение на компьютере, но оно используется и для других вещей), которые позволяют вам получать уведомления каждый раз, когда создается окно. Если вы используете дескриптор окна, чтобы затем найти родительский процесс, вы можете использовать его для отслеживания того, как долго выполняется родительский процесс.

1

Функция Win32 GetProcessTimes - это альтернативный способ получения времени создания и времени процессора, проведенного в течение дня. С временем выполнения я предполагаю, что вы имеете в виду время процессора, а не время настенных часов.

Here is a link to a blog post описание использования GetProcessTimes в Delphi.

Это более «прямой» подход, чем использование WMI, однако WMI имеет другие преимущества, такие как возможность запрашивать другие компьютеры по сети.

Как и в случае с skamradt, это приложение должно запускаться непрерывно, чтобы отслеживать все процессы запуска и остановки. Единственный способ узнать о запуске и остановке приложений - использовать WMI-события. See this question for some more info on that а также это Technet blog on scripting

шаги, чтобы сделать это было бы

  1. Перечислять все запущенные процессы covered by this question
  2. , а затем вызвать GetProcessTimes для каждого процесса as described here.
Смежные вопросы