java - 在Java中获取当前 Activity 窗口的标题

标签 java user-interface active-window

我正在尝试编写一个 Java 程序来记录我每 5 秒使用的应用程序(这是一个时间跟踪器应用程序)。我需要一些方法来找出当前 Activity 窗口是什么。我找到了 KeyboardFocusManager.getGlobalActiveWindow() 但我无法让它正常工作。跨平台解决方案是更可取的,但如果不存在,那么我正在使用 X.Org 为 linux 开发。谢谢。

最佳答案

我很确定您会发现无法在纯 Java 中枚举 Activity 窗口(我之前已经很努力地寻找),因此您需要为您想要定位的平台编写代码。

  • 在 Mac OS X 上,您可以启动 AppleScript使用“osascript”。

  • 在 X11 上,您可以使用 xwininfo .

  • 在 Windows 上,您可能可以启动一些 VBScript(例如 this link 看起来很有希望)。

如果您正在使用 SWT,您可能会在 SWT 库中找到一些未记录的、非公开的方法,因为 SWT 为许多操作系统 API 提供了包装器(例如 Cocoa 上的 SWT 有 org .eclipse.swt.internal.cocoa.OS#objc_msgSend() 可用于访问操作系统的方法)。 Windows 和 X11 上等效的“操作系统”类可能具有您可以使用的 API。

关于java - 在Java中获取当前 Activity 窗口的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354254/

相关文章:

java - 黑莓中的布局

python - 在调用函数时如何防止 GUI 卡住? (PyQT4, Python3)

windows - 简单的 Win GUI - 我应该尝试 PowerShell 还是坚持使用 HTA?

java - 如何使子类中的变量在主类中使用

java - 在java中使用static int打印计数

java - Jersey + Spark javax.ws.rs.core.UriBuilder.uri

java - LDAP 替换一个属性的列表值

c++ - 在 Qt 中显示窗口而不窃取焦点

c - 如何获取事件窗口的名称?

python - 使用 Python 获取事件窗口