2017-09-03 1 views
1

Ich wollte zu einem bestimmten Zeitpunkt eine iTunes Ordner-Playlist abspielen, ich habe diesen Teil selbst herausgefunden. Aber die Sache ist, ich wollte iTunes später zum Mini-Player wechseln. Also hier ist der CodeAppleScript ausführen, während der Bildschirmschoner aktiviert ist

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 

die oberen Teile egal. Bitte schauen Sie sich den Teil mit "System Events" an.

Es funktioniert genauso wie erwartet, wenn der Bildschirmschoner nicht ausgeführt wird, aber es nicht, wenn der Bildschirmschoner ausgeführt wird, aber ich kann nicht herausfinden, was ich verpasst habe.

Also, gibt es eine andere Einschränkung läuft applescript unter Bildschirmschoner ich mir nicht bewusst? Irgendwelche Vorschläge würden geschätzt werden. Vielen Dank.


2017-09-17 hinzufügen

Ich bemerke, kam, als ich "Fenster" Menüpunkt drücken, iTunes (das Haupt) Fenster verschwindet. Würde das bedeuten, dass ich über Bildschirmschoner hinaus sein muss, um irgendetwas mit Windows durch applescript zu tun?

Antwort

0

Es sieht so aus, als wenn der Bildschirmschoner ausgeführt wird, das Skript wird trotzdem ausgeführt, verarbeitet aber bestimmte Ereignisse nicht. Die Problemumgehung besteht darin, den Bildschirmschoner zu beenden, bevor in diesem Fall Code ausgeführt wird, der von UI Scripting abhängig ist.

Beispiel:

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

Sie für den Vorschlag danken. Es funktionierte nicht sowohl auf meinem Mac mini und Macbook air tho. Kann es daran liegen, dass der ESC-Schlüssel nicht ausreicht, um den Bildschirmschoner zu stoppen? Nochmals vielen Dank :) – Canor

0

Versuchen Sie, diese Version

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

Vielen Dank, aber es hat auch nicht funktioniert ... – Canor

Verwandte Themen