Applescript公开所有Finder Windows?

时间:2011-08-21 03:49:44

标签: macos finder applescript

我正在试图弄清楚如何编写一个可以Exposé所有Finder Windows的Applescript。

应用逻辑

我认为脚本需要具有此应用程序逻辑:

  • 检查剩余设置并获取最后一个“Frontmost”的名称 应用程序“(也许使用文本文件〜/ last-application.txt来存储它?)
  • 抓取当前Frontmost Application的名称
  • 如果最前面的应用程序的当前名称是Expose,则激活前一个最前面的应用程序
  • 否则,激活finder,然后激活仅用于取景器窗口的曝光

期望的行为

  • 当脚本被激活时,所有取景器窗口(以及只有取景器窗口)将显示在Exposé中
  • 如果再次运行脚本(并且未选择任何查找器窗口),脚本将只切换回最后一个最前面的应用程序

我不知道如何让这个工作。如果有另一个实用程序自动执行此操作,那也很棒。

enter image description here

1 个答案:

答案 0 :(得分:1)

set f to "/s/x/finderexpose"
set prev to do shell script "touch " & f & "; cat " & f
if prev is not "" then
    delay 0.5 -- time to release modifier keys used in a shortcut
    tell application "System Events" to key code 53 -- esc, if Exposé is open
    delay 0.3 -- for the Exposé animation?
    activate application prev
    do shell script "echo '' > " & f
else
    do shell script "echo " & quoted form of (path to frontmost application as text) & " > " & f
    activate application "Finder"
    delay 0.05
    tell application "System Events" to key code 125 using {control down} -- ⌃↓
end if

如果切换到之前的应用程序的部分被遗漏了,那就不那么难看了:

activate application "Finder"
delay 0.05
tell application "System Events" to key code 125 using {control down}