Applescript - 获取窗口的状态(可见或在停靠栏中)

时间:2012-04-14 17:24:11

标签: macos applescript

我的AppleScript需要一些帮助。

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

列出我使用的窗口:

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

但这不起作用!

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在Mac OS X 10.6(AppleScript 2.1.2)上,description windowapplication process'条款)的System Events属性为"dialog"如果窗口小型化(在Dock中),以及其他一些值(例如"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)