以编程方式获取 Unity 中最前面(当前正在运行)的应用程序的名称

以编程方式获取 Unity 中最前面(当前正在运行)的应用程序的名称

我正在尝试编写一个根据当前活动程序以不同方式执行的脚本,并且我想知道是否有任何方法可以通过编程找到它。

例如,我来自 Mac 世界,在 Apple 的 Applescript 中您可以执行以下操作:

set appPath to the path to the frontmost application
set appName to the name of file appPath

这将为您提供当前正在运行的应用程序的名称。

在 ubuntu-land 中我可以做类似的事情吗?

谢谢!

答案1

xprop可以告诉你活动窗口的 ID

xprop -root|grep '^_NET_ACTI'

您可以使用的输出wmctrl找出所有窗口的名称,并与其 ID 匹配

wmctrl -l

wmctrlsudo apt-get install wmctrl不在默认安装中,所以您当然需要。

请注意, 的输出中没有左填充xprop,因此我们需要在 的输出中 grep 之前对其进行填充wmctrl。总的来说,类似下面的代码应该可以做到这一点:

$ WINID=$(xprop -root|grep '^_NET_ACTI' |sed -e 's/.*# //' -e 's/0x/0x0/')
$ wmctrl -l |grep $WINID
0x07c00006  0 my-hostname The Title of The Window

相关内容