Я написал приложение для отслеживания времени, которое делает что-то похожее в прошлом, чтобы отслеживать, как я трачу время на различные проекты / приложения и т. Д. Идея состояла в том, чтобы отслеживать использование моего приложения локально и использовать запрос POST для веб-сервер для централизованного ведения журнала. Я мог также запустить это приложение на любой машине, которую хотел, и запрос POST все равно возвращался бы к центральному серверу, чтобы я мог отслеживать свою активность на нескольких машинах.
Вы можете использовать JNI для привязки к Win32 API , который затем может дать вам доступ к заголовкам окон, информации о процессах и т. Д.
Этот Q / A должен помочь вам начать:
Как я могу прочитать заголовок окна с помощью JNI или JNA?
Где-то (я не могу найти его прямо сейчас) в сети есть .JAR
, который оборачивает win32 API, что делает этот тип функциональности очень простым в Java.