WH_FOREGROUNDIDLE останавливается, когда программа теряет фокус

Я пытаюсь сделать процессор интенсивной фоновой обработки из программы на основе форм. Я использую WH_FOREGROUNDIDLE обнаружить холостые. Хук выполняет некоторую обработку, обновляет форму и снова ждет хука.

Это прекрасно работает, пока я не нажму на какую-нибудь другую программу, а затем ловушка останавливается.
Если я нажимаю на форму, перехват начинается снова.

Это можно обойти? Или я использую неправильный метод для достижения своей цели?

1 ответ

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

Другие вопросы по тегам