gpt4 book ai didi

java - 如何使用 C/java 检测 Activity 应用程序?

转载 作者:IT王子 更新时间:2023-10-29 00:31:33 26 4
gpt4 key购买 nike

我想记录 Activity 申请并保存 Activity 申请的历史记录。我说 Activity 应用程序是因为如果我运行一个应用程序并且它被最小化等,我不会将其视为 Activity 应用程序。为了使我的问题更清楚,让我们看一下这个例子。我打开 Firefox 并在网上冲浪 20 分钟。然后我打开一个文本编辑器并开始编写 5 分钟(Firefox 正在运行但我没有使用它,因此 Firefox 不应被视为 Activity 应用程序)。所以我应该可以记录以下信息:

Firefox -> 20 minutes 
Text editor -> 5 minutes

我想在操作系统(首选 Linux)开启期间跟踪每个使用过的应用程序,并制作一个开源应用程序,说明您使用每个应用程序的次数。

更新:我要记录的应用程序是用户在显示器上看到并正在使用的应用程序。例如,您可能会更改窗口大小,使您可以同时看到 Firefox 和文本编辑器(在不同的工作空间中,级联等),但您是在文本编辑器中输入,因此,文本编辑器是主动申请。换句话说,如果您正在与之交互或者是您正在查看以阅读 pdf、文本等格式的内容的最后一个交互应用程序,则该应用程序处于 Activity 状态。与应用程序交互:我的意思是单击、键入、滚动等。

NARROWING : 我唯一想不通的是如何在这些条件下获得 Activity 应用程序。我想如果我在当前工作区的显示器上获得最顶层的应用程序可以解决问题,但是,我们有一个属性可以设置为可能需要在不启用此属性的情况下获取的窗口(始终在顶部)。我找到了 this question这可能有助于回答。

使用 Fedora 26,

提前致谢。

最佳答案

  1. 应用程序是否“最小化”不是Linux 进程的属性。相反,它由您的“桌面管理器:软件(例如 Gnome)”管理,后者又位于 X Windows 之上。

  2. 换句话说,要找出哪些应用程序已“最小化”,哪些未“最小化”,您通常必须查询 X Windows。例如:

How can you check if a window is minimized via the terminal in linux

if xwininfo -all -id $windowIdGoHere |grep "Hidden"; then
echo "is hidden"
fi
  1. 如果“xwininfo”适合您...那么您当然可以从 Java 中调用它,例如使用 Process p = Runtime.getRuntime().exec(...)

关于java - 如何使用 C/java 检测 Activity 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com