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?
问问题
3022 次
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 回答