Я нашел окно переднего плана на рабочем столе, используя функцию GetForegroundWindow(). Мне нужно отслеживать, сколько времени каждое приложение проводит на переднем плане и обновляет его в базе данных каждый раз при возобновлении на передний план. Есть ли API для установки счетчика или найти, когда окно не находится в фокусе?Как отслеживать продолжительность времени, в котором активно приложение переднего плана
1
A
ответ
1
Существует WH_CBT
Тип крюка, поддерживаемый SetWindowsHookEx
, который срабатывает при каждом переключении пользователя в другое окно или приложение. How to install Windows hooks from C#.
Однако, если вам не нужна совершенная точность, гораздо проще просто позвонить GetForegroundWindow()
один раз в секунду и проверить, изменилось ли числовое значение возвращаемого HWND
. Для чего-то вроде приложения для отслеживания активности, которое не нужно замечать полсекунды, этот метод является лучшим выбором.
Советы:
GetForegroundWindow()
возвращает дескриптор окна, которое в данный момент в фокусе (который может находиться на столе или на панели задач или плавающей виджет так что вам может понадобиться для фильтрации, что), или нулевой дескриптор, если нет окно в настоящее время сосредоточено.- Это сверхбыстрый, поэтому нет никакого вреда при вызове его десятки или сотни раз в секунду.
- Значения дескриптора окна уникальны (по крайней мере, в текущем сеансе пользователя), разные, даже если они принадлежат к разным приложениям, и назначаются таким образом, что уничтоженный дескриптор почти никогда не переназначается сразу.
0
Если вы беспокоитесь о своем собственном приложении, вы можете обрабатывать события Активация/Фокус/Затерянный/Деактивировать. Если вам нужно контролировать все окна, для этого вам нужно использовать Windows Hooks. Одна статья here.
Смежные вопросы
- 1. Загрузите приложение после его ввода переднего плана
- 2. рендеринг переднего плана съемки в приложение MVC
- 3. Нужно отслеживать состояние переднего плана и фона моего приложения
- 4. как отслеживать продолжительность видео времени, воспроизводимого в приложении ipad
- 5. Обнаруживать, когда пользователь открывает приложение переднего плана
- 6. Остановлена перезагрузка переднего плана
- 7. API-интерфейс переднего плана
- 8. сделать обзор переднего плана
- 9. Как отслеживать продолжительность операции перетаскивания?
- 10. Связать переднего плана сложенного ребенка перед лицом переднего плана?
- 11. Задача переднего плана Jenkins
- 12. Добыча переднего плана
- 13. Стратегии тестирования переднего плана?
- 14. Как изменить ось переднего плана?
- 15. Как создать задачу переднего плана?
- 16. Достижение эффекта переднего плана
- 17. Подсветка синтаксиса переднего плана
- 18. Как правильно использовать Firebase из службы переднего плана в Android
- 19. Ограничение объекта переднего плана
- 20. Пример использования переднего плана
- 21. Цвет переднего плана DataGridTextColumn
- 22. LongListSelector Цвет переднего плана
- 23. Наружная экипировка переднего плана
- 24. TabWidget белый цвет переднего плана?
- 25. Передовые методы разработки переднего плана
- 26. Цвет переднего плана для AppBarButton
- 27. Активность переднего плана свыше 100%?
- 28. Изменить текст переднего плана texbox
- 29. BlackBerry - фоновое приложение для прослушивания начинается и приложение переднего плана
- 30. Приведение деятельности с переднего плана