Det du vill göra går att göra i Mac OS med Photoshop ochy Applescript.
Stödet för Applescript i Photoshop är dock begränsat till att köra de action-script som man kan definiera i Photoshop självt. Så listan med Applescript-kommandon som Photoshop förstår är alltså ganska kort, men ett av dem är något i stil med "run action XXX". Men from version 7 så skall det vara lättare.
Två tidigare trådar om Applescript och Photoshop
http://www.99mac.com/forum/showthread.php?s=&threadid=8785
http://www.99mac.com/forum/showthread.php?s=&threadid=25053
Så vad du skall göra är ungefär följande:
1. Skapa en action i Photoshop och spara den.
2. Skapa ett script som kör denna action på den filen som är öppen i Photoshop. Det scriptet behöver bestå av stegen:
* aktivera Photoshop
* öppna referensen till filen
* kör din action
* spara och stäng
3. Omge det scriptet med en "handler" så att man kan knyta scriptet till en mapp (via folder actions som beskrivs ovan) och som loopar igenom alla filer man släppt i en mapp och som avslutning flyttar processade filer till en annan mapp. Se nedan för ett förslag.
4. Knyta scriptet till en mapp, via folder actions.
När man nu släpper filer i mappen så kommer de att processas av Applescript och Photoshop.
Du kan inte skapa ett exekverbart Applescript genom att byta typ på det heller. I Manusredigerare (där du skapar och testar script) så väljer du "Spara som" och som typ anger du "Program" och sätter de kryss nedanför du tycker är lämpliga. För att en Applescript-applikation du skapat på det viset skall fungera som en droplet (att du kan dra och släppa saker på den) måste den innehålla en två sk "handlers" som är samma sak som subrutiner. Se mitt nästa inlägg för ett exempel.
Det går även utmärkt att skapa flera separat applescript-applikationer som pratar med varandra och dessutom byter data med varann. Har du skapat en applikation som heter "DoScriptInPhotoshop.app" och vill köra den via ett script så använder du:
set scriptname to "Sudda till"
tell application "DoScriptInPhotoshop.app"
doscript (scriptname)
end tell
I applikationen har du då ett script som ser ut så här:
on doscript(scriptname)
tell application "Photoshop"
doscript scriptname
end tell
end tell
Har inte testat ovanstående, men sådan är principen.
ML: Sedan kan jag tillägga att på Mac förekommer inte filändelsen ".exe" för att ange att något är ett programm, men ".app" förekommer och är samma sak. Rätta mig om jag har fel.
BitBLT: Sedan förstår jag tyvärr inte vad du menar med att du vill anropa dropleten från en kommando-rad.
Så för att sammanfatta:
* Du kan få script att köras då saker släpps i en mapp, detta kallas Folder Actions och du knyter ett script till en folder genom att använda dig av script som ligger här:
Hårddisk: Library: Scripts: Folder Actions: Attach Script to Folder.sct
Du måste ha med en handler i scriptet som är on "adding folder items to this_folder after receiving added_items"
* Du kan få script att köras du saker släpps på ett script, detta kallas Droplets. Du skapar en Droplet genom att dels ha med en handler "On open" i scriptet och dels spara det som en applikation inifrån "Manusredigeraren".
* Du kan få script att köras genom att dubbelklicka på en applikation. Samma princip som punkten före denna, förutom att handlern skall heta "om run".
Lycka till!
/Ola