Ваше приложение получит сообщение WM_SYSCOMMAND
с SC_SCREENSAVE
в качестве идентификатора команды, когда Заставка вот-вот включится. Будет ли это делать? есть также идентификатор команды SC_MONITORPOWER
, когда монитор почти пуст (также сообщение WM_SYSCOMMAND).
Редактировать: просматривая комментарии, вы обнаружите, что вам не важно, является ли пользователь инициативным, а, скорее, неактивно ли ваше приложение .
Это просто. Если ваше приложение свернуто, то пользователь не взаимодействует с ним. Если ваше приложение не является приложением переднего плана, это также хороший инициатор.
Вы также можете обратить внимание на сообщения в вашем насосе, чтобы заметить, были ли какие-либо пользовательские сообщения ввода в ваше приложение. В C ++ добавление кода в насос тривиально, в delphi вы можете использовать ловушку WH_GETMESSAGE для мониторинга насос подключается к циклу сообщений, который реализует TApplication. Или GetLastInputInfo