Я пытаюсь сделать процессор интенсивной фоновой обработки из программы на основе форм.
Я использую WH_FOREGROUNDIDLE
обнаружить холостые. Хук выполняет некоторую обработку, обновляет форму и снова ждет хука.
Это прекрасно работает, пока я не нажму на какую-нибудь другую программу, а затем ловушка останавливается.
Если я нажимаю на форму, перехват начинается снова.
Это можно обойти? Или я использую неправильный метод для достижения своей цели?
Ты можешь использовать GetLastInputInfo определить, не занят ли пользователь для текущего процесса. Это полезно, например, в программах чата, чтобы пометить пользователя как отсутствующего. Однако он не представляет общесистемное состояние ожидания. Но проверка этого по таймеру позволила бы вам выполнить задачу только тогда, когда пользователь в данный момент не взаимодействует с приложением, не полагаясь на сообщения, которые доставляются только из-за активности пользователя.