桌面应用程序noob问题:最好的跨平台库,可以监听窗口更改事件(焦点,失去焦点等)?

时间:2010-07-23 04:41:06

标签: user-interface cross-platform

我只做过服务器,网络和数据库编程,从不进行任何桌面编程。我现在想学习并有一个我想尝试的小项目,但我不确定要使用哪个库/框架。

我想创建一个在系统托盘中运行的小型跨平台应用程序(以及OSX等效的),并监听桌面上Windows的更改。具体做法是:

  1. Windows XP,Vista,7,Gnome,KDE,OSX。 BSD,Android和/或iOS也不错,但不是必需的。
  2. 侦听任何窗口获得焦点,失去焦点,打开或关闭,或者窗口标题是否更改(例如在选项卡式浏览器中切换选项卡时)。它可以从窗口中抓取的任何其他信息也是有用的。
  3. 可以存储这些事件,最好是嵌入式数据库,如SQLLite。
  4. 重量越轻越好。
  5. 包含一个选项GUI,可通过系统托盘图标中的右键菜单访问。
  6. 最好是FOSS,但如果你知道任何非FOSS,请列出。
  7. 是否有单个库或框架可以跨多个平台执行所有操作? QT?蟒蛇? Java的?别的什么? TIA。

1 个答案:

答案 0 :(得分:3)

几乎任何GUI框架都可以在您自己的应用程序获得或失去焦点(或您提到的其他操作)时轻松通知您。但是,为其他任意应用程序监听这些事件肯定是特定于平台的,甚至可能是也可能不可能。

在Windows上执行此操作的一个框架是CBT callback hook。有关使用此技术可能存在的限制的信息,请参阅问题CBT Hook not working in Windows Vista