2016-05-18 4 views
0

Ich habe ein Skript auf einer Maschine, die mehrere Versionen von Photoshop hat, die nach jeder geöffneten Version von Photoshop (in diesem Fall CS6) sucht und den Namen als eine Variable namens AppName speichert.Applescript zu brechen, wenn der Anwendungsname eine Variable ist?

Es scheint für die Prüfung gut zu funktionieren „Wenn AnwName läuft“, aber später auf der ganzen Skript I „tell application ...“ haben und wenn ich innen dort, Dinge zu tun beginnen, erhalte ich Fehler 1728.

Beispiel: Ich habe CS6 geöffnet und ein Bild geöffnet.

tell application AppName 
    log count documents 
    log file path of document 1 
end tell 

Das

(*1*) 
(*Adobe Photoshop CS6 got an error: Can't get path. - -1728*) 

erzeugen würden Es funktioniert völlig in Ordnung, wenn ich geben Sie „Adobe Photoshop CS6“ gerade oder „com.adobe.photoshop“, aber aus verschiedenen Gründen kann ich nicht tun und muss es eine Variable bleiben.

Wer hat irgendwelche Ideen? =/

Antwort

0

Das Argument tell application muss eine Literalzeichenfolge (eine Konstante) sein, da die Terminologie zum Zeitpunkt der Kompilierung ausgewertet wird.

Die einzige Möglichkeit, Applescript Terminologie neben tell application ist ein using terms from Block zum Beispiel

using terms from application "Adobe Photoshop CS6" 

end using terms from 

aber dies erfordert auch eine Konstante als Argument häufig in Ereignishandler verwendet zu bewerten. Die Implementierung hängt vom Kontext ab.

Verwandte Themen