我有2個空中應用程序,我寫了。他們在10秒後自動全屏。在此之前,他們需要被髮送到他們正確的顯示。 「APP_1」需要在顯示器1上運行,「APP_2」需要對顯示器2在雙顯示器上定位帶有applescript的窗口
運行本質上講,我有這樣的代碼:
do shell script "cd /Applications/app_1.app/Contents/MacOS/ ; open app_1;"
這對我來說完美的作品。這兩種應用程序都以這種方式啓動,並且有一些代碼用於確保應用程序尚未打開,並關閉它們(如果是的話)。
我試圖在腳本中添加定位應用程序在啓動之後:
do shell script "cd /Applications/app_1.app/Contents/MacOS/ ; open app_1;"
tell first window of application "app_1" to set bounds to {0,0,1920,1080}
這給了我一個錯誤:
app_1 got an error: Can't set bounds of window 1 to {0,0,1920,1080}
我嘗試添加的幾秒鐘之前的延遲set bounds
,如果應用程序在set bounds
開除時尚未啓動,但這並未改變任何內容。
我也嘗試設置界限,如{100,100,200,200}
只是爲了查看我是否有屏幕座標錯誤或某事,但仍然是完全相同的錯誤,只能用{100,100,200,200}
而不是原始的1920x1080座標。
任何人都有這方面的見解?我一直在努力在谷歌上找到解決方案几個小時。
這可能是一個愚蠢的問題,但是......您的應用程序實際上是否響應「第一個窗口」,並且它的窗口實際上是否響應「set bounds」?換句話說,如果您在應用程序已啓動並運行時手動運行相同的「tell」行,它是否工作? – abarnert
當應用程序已經運行時,我仍然收到相同的錯誤消息 – BumbleShrimp
好的,接下來將它分成兩部分。如果你只是'告訴應用程序'app_1'第一個窗口'?這也會失敗嗎?如果是這樣,那麼你的應用程序不會將其窗口暴露給腳本。如果你認爲它應該是(例如,因爲你已經編寫了代碼來這樣做,或者因爲AIR聲稱會自動發生),那麼這就是你必須解決的問題。如果沒有理由期望這樣做,您需要使用UI腳本(這意味着必須啓用輔助訪問)。 – abarnert