1

I've seen a lot of posts for how to send a window to the front in applescript, but I want to be able to send it to the back. How do I write an applescript that will do this?

4

4 回答 4

1

类似的东西set index to 999似乎不起作用,但set index to (count windows)确实:

tell application "TextEdit"
    set index of window 1 to (count windows)
end tell

您还可以提高所有其他窗口:

tell application "System Events" to tell process "TextEdit"
    repeat with w in windows 2 thru -1
        perform action "AXRaise" of w
    end repeat
end tell
于 2013-09-05T11:34:28.293 回答
1

也许您实际上不需要移动任何窗口。也许您可以隐藏您的应用程序,这样您的窗口就不会显示。由于您不希望窗口位于顶部,因此只需隐藏您的应用程序就可以了。它继续运行并做它的事情,但它的窗口不覆盖任何其他窗口。

只需将“Safari”更改为您的应用程序的名称。

set myAppName to "Safari"
tell application myAppName to activate
tell application "System Events"
    -- wait until your application comes forward and then hide it
    repeat
        set p to first process whose frontmost is true
        if name of p is myAppName then
            set visible of p to false -- hide your application
            exit repeat
        end if
        delay 0.2
    end repeat
end tell

编辑:如果隐藏您的应用程序不起作用,那么您只需击键命令选项卡,这是应用程序切换器命令。基本上,您的应用程序将出现在最前面,然后击键将使之前最前面的应用程序出现在最前面。因此,您的窗口不会一直向后退,但不会在前面。也许这会奏效。

set myAppName to "Safari"
tell application myAppName to activate
tell application "System Events"
    -- wait until your application comes forward
    repeat
        set p to first process whose frontmost is true
        if name of p is myAppName then exit repeat
        delay 0.2
    end repeat

    -- use the application switcher to bring the previously frontmost application forward
    keystroke tab using command down
end tell
于 2013-09-05T14:27:05.197 回答
0

这会将前面的取景器窗口移到后面......

tell application "Finder" to set index of front Finder window to (count Finder windows)
于 2013-09-05T03:30:27.407 回答
0

我没有使用“openFrameWorks”,所以我不确定它是如何工作的……</p>

但与其用 Applescript 重新发明轮子。

你能不能在“openFrameWorks”中设置窗口级别

在 xcode/Objective-c 中,我会使用 NSWindow Window Levels常量

设置普通窗口:

[awindow setLevel: NSNormalWindowLevel];

但在其他普通窗口下方设置一个窗口:

[awindow setLevel: NSNormalWindowLevel - 1000];

这将确保窗口始终位于任何正常的应用程序窗口下方。即使我点击它或拖动它。它位于其他窗口后面。

于 2013-09-06T16:16:14.133 回答