gllanderas Ответов: 3

Как узнать, как долго работает программа windows


Привет,

Мне нужно знать, как долго работает программа Windows и как долго она работает без взаимодействия пользователя с ней.

Смысл в том, чтобы автоматически закрыть программу, если пользователь ею не пользуется.

Спасибо.

Что я уже пробовал:

I searched for a Windows API function that gaves me that information, but I didn't find any.

3 Ответов

Рейтинг:
1

Garth J Lancaster

Я бы начал с API процесса - там есть информация о различных "временах" начала и т. д. :- Класс Процесса (System.Диагностика)[^]

Посмотрите на StartTime, TotalProcessorTime, UserProcessorTime и посмотрите, удовлетворяют ли они ваши потребности


Рейтинг:
1

gllanderas

Спасибо за ваши ответы, Йохен и Гарт.

Программа, которую мне нужно контролировать, - это не мое приложение, это коммерческая программа. Я все же нашел GetProcessTimes, но эта функция не возвращает то время, которое мне нужно.

Ни один из них не нашел решения с классом Process.

Решением может быть использование одной из этих программ:

Idle Software Closer-Автоматическое Закрытие Программ Параллельной Лицензии[^]

Автоматическое закрытие простаивающих программ, бухгалтерских, финансовых приложений и приложений баз данных[^]

Одним из решений, чтобы попытаться сделать это самостоятельно, может быть непрерывная проверка того, простаивает программа или нет, и контроль с помощью таймера, когда я обнаруживаю, что она простаивает. Но, насколько я проверил, ни одно из обоих решений не возвращается, если программа Windows простаивает или нет.


Рейтинг:
0

Jochen Arndt

Чтобы получить время выполнения приложения Windows, вы можете использовать Функция GetProcessTimes (Windows)[^] передача дескриптора процесса (Функция GetCurrentProcess (Windows)[^]). Чтобы получить время выполнения, вычитаем lpCreationTime с текущего времени.

С помощью C/C++ вы также можете использовать часы[^] функция.

Чтобы узнать последнее время взаимодействия с пользователем, вы должны получить и сохранить время при каждом вводе пользователя. Как это реализовать, зависит от типа вашего приложения. Одним из вариантов является подключение событий клавиатуры и мыши с помощью Функция SetWindowsHookEx (Windows)[^]. Смотреть также Обзор Крючков (Windows)[^].