我正在尝试编写一个 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/