2017-09-03 119 views
1

我想在特定時間播放iTunes文件夾播放列表,我自己想出了這個部分。 但事情是,我想在之後將iTunes切換到迷你播放器。所以這裏的代碼屏幕保護程序啓動時運行蘋果手機

tell application "iTunes" to quit 
delay 5 

tell application "iTunes" 
    reopen 
    activate 
    set song repeat to all 
    set shuffle enabled to true 
    set sound volume to 35 
    delay 5 
    get name of AirPlay devices 
    set selected of AirPlay device "Airport Express" to true 
    play playlist "mom's music" 
end tell 

delay 20 

-- here comes the part I don't get 

tell application "System Events" 
    tell process "iTunes" 
     set frontmost to true 
     if title of window 1 is "미니 플레이어" then 
      click menu item 9 of menu 9 of menu bar 1 
      delay 5 
      click menu item 9 of menu 9 of menu bar 1 
     else 
      click menu item 9 of menu 9 of menu bar 1 
     end if 
    end tell 
end tell 

沒關係的上半部分。請看「系統事件」部分。

當屏幕保護程序沒有運行時,它的工作方式與預期的一樣,但在屏幕保護程序運行時沒有運行,但我無法弄清楚我錯過了什麼。

那麼,我還沒有意識到在屏幕保護程序下運行applescript有另一個限制嗎?任何建議,將不勝感激。謝謝。


2017年9月17日加

我來到注意到當我按下「窗口」菜單項,iTunes(主要的)窗口中消失。這是否意味着我必須超越屏幕保護程序才能通過applescript對窗口執行任何操作?

回答

0

看來當屏幕保護程序正在運行時,腳本仍然會運行但不處理某些事件。解決方法是在運行任何依賴於UI腳本的代碼之前停止屏幕保護程序。

例子:

tell application "System Events" 
    key code 53 -- # Esc key. 
    delay 1 - # Adjust as necessary, the screen saver needs to have stopped before continuing. 
    tell process "iTunes" 
     set frontmost to true 
     if title of window 1 is "미니 플레이어" then 
      click menu item 9 of menu 9 of menu bar 1 
      delay 5 
      click menu item 9 of menu 9 of menu bar 1 
     else 
      click menu item 9 of menu 9 of menu bar 1 
     end if 
    end tell 
end tell 
+0

謝謝你的建議。它在我的Mac mini和MacBook Air上都不起作用。是否因爲ESC鍵不足以停止屏幕保護程序?再次非常感謝你:) – Canor

0

試試這個版本

try 
    tell application id "com.apple.ScreenSaver.Engine" to quit 
end try 

tell application "System Events" 
    tell process "iTunes" 
     set frontmost to true 
     if title of window 1 is "미니 플레이어" then 
      click menu item 9 of menu 9 of menu bar 1 
      delay 5 
      click menu item 9 of menu 9 of menu bar 1 
     else 
      click menu item 9 of menu 9 of menu bar 1 
     end if 
    end tell 
end tell 
+0

非常感謝你,但它也不管用...... – Canor

相關問題