這裡介紹如何在 Mac OS X 中,使用 AppleScript 程式精準控制任何應用程式視窗的位置與大小。

在撰寫一些教學文章時,時常需要擷取螢幕或視窗的畫面,為了讓每張截圖看起來一致,在擷取之前我們都會稍微調整一下視窗的大小,讓每個畫面統一,增加美感。

在 Mac OS X 上,您可以使用 SizeUp 這類的工具來調整視窗的大小,雖然他很好用,不過缺點是要付費,當然您也可以使用他的試用版,並且忍受煩人的廣告。


其實如果只是單純的控制視窗位置與大小,我們可以使用 Mac OS X 內建的 AppleScript 撰寫指令稿,只要簡單幾行指令,就可以達成這樣的需求,完全不用花錢,以下是使用 AppleScript 控制視窗位置與大小的教學。

Step 1
首先開啟「工序指令編寫程式」。

applescript-1

Step 2
輸入下面這一段 AppleScript 指令稿:

tell application "Safari"
    activate
    set the bounds of the first window to {140, 0, 1600, 900}
end tell

這段指令稿的意思應該直接看就可以理解了,第一行選擇要控制的應用程式名稱,這裡我們選擇 Safari 瀏覽器,activate 會讓該應用程式變成選取的狀態,然後設定該應用程式的視窗位置為 (140, 0),大小為 1600x900 像素。

貼上程式碼之後,畫面會像這樣:

applescript-2

Step 3
按下執行按鈕之後,AppleScript 就會自動調整桌面上 Safari 瀏覽器的視窗位置與大小了。

safari-1

當然其他的瀏覽器或是應用程式都可以用這樣的方式調整,例如 Google Chrome 瀏覽器:

tell application "Google Chrome"
    activate
    set the bounds of the first window to {140, 0, 1600, 900}
end tell

Firefox 瀏覽器:

tell application "Firefox"
    activate
    set the bounds of the first window to {140, 0, 1600, 900}
end tell

另外,如果想要一次調整一個應用程式的多個視窗,可以這樣寫:

tell application "Safari"
    activate
    set the bounds of the first window to {140, 0, 1160, 775}
    try
        set the bounds of the second window to {150, 0, 1130, 775}
    end try
end tell

為了避免應用程式只有一個視窗而出錯,這裡在控制第二個視窗時,加上 try,這樣就算應用程式只有單一個視窗也不會出現錯誤。

參考資料:Ask Different