1

我的 appleScript 需要一些帮助。

对于所有打开的窗口,我想知道哪个是隐藏的(在 Dock 中),哪个是可见的,哪个是聚焦的?

要列出我使用的窗口:

tell application "System Events"
    set procs to processes
    set windowName to {}
    repeat with proc in procs
        try
            if exists (window 1 of proc) then
                repeat with w in windows of proc
                        copy w's name to the end of windowName
                end repeat
            end if
        end try -- ignore errors
    end repeat
end tell
return windowName

我尝试了重点属性:

copy w's focused to the end of windowName

和选定的属性:

copy w's selected to the end of windowName

但这不起作用!

感谢帮助!

4

1 回答 1

0

在 Mac OS X 10.6 (AppleScript 2.1.2) 上, a 的属性description(在' 术语中)是窗口是否被小型化(在 Dock 中),以及其他一些值(例如, 但可能会有所不同,具体取决于应用程序),如果它没有小型化。windowapplication processSystem Events"dialog""standard window"

当一个应用程序完全隐藏时(使用cmd+H或应用程序菜单中的“隐藏”命令),它的所有窗口都将被隐藏,无论它们是否被小型化,所以要找出它是否隐藏,使用

visible of application process "<ProcessName>"

这是false应用程序被隐藏的时候。要取消隐藏它,将该属性设置为true.

要找出应用程序的哪个窗口当前处于焦点(最前面/活动),请使用

window 1 of application process "<ProcessName>"

应用程序的窗口列表(由 返回windows of application process...)按垂直堆栈排序:最前面的窗口是第一个,它后面的窗口是第二个,依此类推。

由于在 OS X 中一次只有一个应用程序位于最前面,并且只有一个窗口位于前台,因此您将看到当前聚焦的窗口,如下所示:

window 1 of (first application process whose frontmost is true) 
于 2012-04-16T14:42:07.547 回答