Вопрос noob для настольного приложения: лучшая кроссплатформенная библиотека, которая может прослушивать события изменения окна (фокус, потеря фокуса и т. Д.)? - PullRequest
4 голосов
/ 23 июля 2010

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

Я хотел бы создать небольшое кроссплатформенное приложение, которое запускается в системном трее (и, каков бы ни был эквивалент OSX) и отслеживает изменения окон на рабочем столе. В частности:

  1. Windows XP, Vista, 7, Gnome, KDE, OSX. BSD, Android и / или iOS тоже подойдут, но не обязательно.
  2. Прослушивает, когда какое-либо окно получает фокус, теряет фокус, открывается или закрывается, или если изменяется название окна (например, при переключении вкладок в браузере с вкладками). Любая другая информация, которую он может почистить из окна, также будет полезна.
  3. Может хранить эти события, предпочтительно во встроенной базе данных, такой как SQLLite.
  4. Чем легче вес, тем лучше.
  5. Включает графический интерфейс параметров, доступный через контекстное меню на значке в системном трее.
  6. Желательно, чтобы FOSS, но если вы знаете какой-либо не-FOSS, пожалуйста, укажите также.

Существует ли единая библиотека или инфраструктура, которая может делать все это на разных платформах? QT? Python? Джава? Что-то другое? ТИА.

1 Ответ

3 голосов
/ 23 июля 2010

Почти любая инфраструктура графического интерфейса может легко сообщить, когда ваше собственное приложение получает или теряет фокус (или другие операции, которые вы упоминаете). Однако прослушивание этих событий для других произвольных приложений определенно зависит от платформы и может быть, а может и не быть возможным.

Одним из каркасов для этого в Windows является ловушка обратного вызова CBT *1008*. См. Вопрос CBT Hook, не работающий в Windows Vista для получения информации о возможных ограничениях использования этой техники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...