Gå till innehåll
Just nu i M3-nätverket

Kopiera jpeg-filer till clipboard med Automator?


jonas.rundqvist

Rekommendera Poster

jonas.rundqvist

Jag håller på med ett Automator-workflow för att kopiera, ändra upplösning och filformat på bilder från en katalog i iPhoto. Jag vill ha resultatet (de nya bilderna) i clipboard-minnet så att det bara är att högerklicka och sedan "paste item" där jag vill ha bilderna.

 

Hur kopierar man jpeg-filerna i en mapp till clipboard med en Automator-action? Jag har testat "copy"-action men den verkar bara kopiera filernas "path" och verkar bara fungera för text.

 

En annan fråga... När jag skapar en ny katalog med Automator så är den alltid stängd och jag måste sedan dubbelklicka den för att öppna katalogen. Finns det någon action som öppnar en befintlig katalog?

 

Mycket tacksam för alla idéer och svar!

Länk till kommentar
Dela på andra webbplatser

För att öppna en mapp med Automator.

 

Lägg till ett Applescript i flödet och

 

tell application "Finder"

open "Macintosh HD:Users:Wolf:Documents"

end tell

 

Byt ut "Wolf" till ditt användarnamn.

Länk till kommentar
Dela på andra webbplatser

jonas.rundqvist

Tusen tack för tipset, skall genast testa det!

 

Några ideér om hur man kopierar en mapps innehåll till clipboard, någon??

Länk till kommentar
Dela på andra webbplatser

Vad jag förstår så vill du kopiera några jpg från ett ställe till ett annat?

 

I så fall kan du väl använda åtgärden "Kopiera Finder-objekt".

Eller är det så att det är till olika ställen varje gång?

Länk till kommentar
Dela på andra webbplatser

Det här funkar om du vill kunna byta destination varje gång...

 

post-4899-1184599988_thumb.png

 

Spara som en plugin till Findern.

Då kan du högerklicka på en eller flera filer.

Välj Automator från menyn och ditt flöde.

Länk till kommentar
Dela på andra webbplatser

jonas.rundqvist

Skriptet för att öppna mappen funkade bra - tack.

 

Det är inga problem att kopiera filerna från ett ställe till ett annat med en action. Problemet är att kopiera filerna från en mapp till clipboard - alltså till minnet på samma sätt som när man högerklickar och gör "copy". Om jag kan göra detta kan jag köra ett workflow och sedan ha resultatet, dvs jpg-filerna, i minnet och allt som återstår för mig är att manuellt köra "paste items" där jag vill ha dem (t ex i ett fotoalbum i iWeb).

Länk till kommentar
Dela på andra webbplatser

Ett av förslagen har varit att koppla ett AppleScript till Automator. Men om det går lika bra att skippa Automator och göra allt i AS föreslår jag följande skript (jag skulle tro att det är vad du söker):

 

tell application "Finder"

activate

 

set new_folder to choose folder with prompt "Välj mapp med Jpeg-bilder för kopiering till klippbordet."

 

open new_folder

 

select the files in new_folder

 

tell application "System Events"

tell process "Finder"

 

try

keystroke "c" using [command down]

 

on error

 

display dialog "Ett fel har uppstått!" & return & return & "Troligen består felet i att innehållet i mappen är av fel typ eller att antalet bilder eller storleken på bilderna överskrider vad klippbordsminnet klarar av." buttons ("OK") default button "OK" with icon stop

 

end try

 

end tell

end tell

end tell

 

tell application "Finder"

activate

 

try

 

close Finder window 1

 

end try

 

end tell

 

 

(* spar gärna skriptet som 'programpaket' för bästa effektivitet *)

Länk till kommentar
Dela på andra webbplatser

jonas.rundqvist

Wow, funkade mycket bra det där. Jag skall definitivt titta närmare på AppleScript.

 

En följdfråga (pga mina bristande kunskaper i AppleScript)... Om jag vill undvika att välja katalog varje gång med...

 

set new_folder to choose folder with prompt "Välj mapp med Jpeg-bilder för kopiering till klippbordet."

 

open new_folder

 

...utan vet vilken (min "Picture Export Web"-katalog på Desktopen). Vilket kommando använder man då?

 

Efter denna justering är mitt script klart.

 

Vad är det för skillnad på "save as application", "save as application bundle" och "save as script bundle"?

 

Vet du någon tutorial på nätet eller bra bok för AppleScript som du vill rekommendera?

 

Igen, stort tack för hjälpen.

Länk till kommentar
Dela på andra webbplatser

Wow, funkade mycket bra det där. Jag skall definitivt titta närmare på AppleScript.

 

En följdfråga (pga mina bristande kunskaper i AppleScript)... Om jag vill undvika att välja katalog varje gång med...

 

set new_folder to choose folder with prompt "Välj mapp med Jpeg-bilder för kopiering till klippbordet."

 

open new_folder

 

...utan vet vilken (min "Picture Export Web"-katalog på Desktopen). Vilket kommando använder man då?

 

Efter denna justering är mitt script klart.

 

Vad är det för skillnad på "save as application", "save as application bundle" och "save as script bundle"?

 

Vet du någon tutorial på nätet eller bra bok för AppleScript som du vill rekommendera?

 

Igen, stort tack för hjälpen.

 

Ja, AppleScript är verkligen värt att titta närmare på. Med AppleScript kan man i de flesta fall skriva program som exakt motsvarar ens behov ner i minsta detalj istället för att hålla på och försöka kombinera modul-koder som jag uppfattar att Automator bygger på.

 

Du har alltså en mapp som du återkommande vill kopiera från? I så fall kan du hoppa över raden med "set new_folder to choose folder with prompt "Välj mapp med Jpeg-bilder för kopiering till klippbordet."" I stället skrivet du in namnet på mappen och sökvägen i skriptet.

 

Exempel:

 

tell application "Finder"

activate

 

set new_folder to folder "Picture Export Web" of desktop

 

(* om mappen istället ligger på hårddisken: ändra "desktop" till "startup disk" *)

 

-- därefter följer exakt samma kod som i det tidigare postade exemplet

 

Den skillnad mellan de olika skripttyperna som jag själv känner till och som för min del brukar ha praktisk betydelse, är att för alla utom 'application bundle' ('programpaket' på svenska) använder OS:et Rosetta för att köra skripten. Programpaket-skript är undantagna detta och är följaktligen de snabbaste av AppleScripten även om prestanda-skillnaden kanske inte alltid spelar så jättestor roll. Vill man i något sammanhang skriva ett mer komplext AppleScript-program som använder flera skript-filer - eller kanske vill man använda Automator för att starta skript med - är också programpaket-skript att rekommendera då dessa spars som fristående programfiler som okomplicerat startas i ett automatiserat flöde utan att skript-editorn behöver öppnas ('save as application' innebär att man spar skript som manus att köra från skript-editorn).

 

Jag har tyvärr ingen litteratur att rekommendera. Den jag själv äger är flera år gammal och jag tycker heller inte att den är särskilt bra. Men det finns gott om AppleScript-instruktion på nätet och det handlar egentligen bara om att hitta den nivå och det upplägg som passar ens egna behov (det är just det som brukar vara porblemet med litteraturen enligt min erfarenhet); utöver nybörjarinstruktioner finns också forum som macscripter.net, eller Apples eget skriptforum. Det amerikanska av de senare forumen är internationaliserat genom deltagandena, och diskussioner och problemlösningar brukar ligga på hög nivå.

Länk till kommentar
Dela på andra webbplatser

jonas.rundqvist

Tack ännu en gång för ditt svar - jag har nu mitt första scritpt klart vilket gör EXAKT det jag vill. Förvisso en kombination av Automators actions och AppleScript-kod, men i alla fall. Har fått blodad tand och skall återuppväcka den slumrade programmeraren i mig.

 

Det har dock dykt upp ett felmeddelande när jag kör mitt script som en plugg-in till Finder eller som en egen application:

 

ASReceiverEvaluationScriptError: 4 (1)

 

Scriptet fungerar alltså från Automator men inte som plug-in eller fristående applikation. Något bekant problem eller är det Automators export som är problemet? Just nu känns det som om jag skall undvika Automator så snart som möjligt och köra "rena" AppleScript.

 

Jag har nu börjat läsa Apples introduktionsmanual till AppleScript vilken tar allt från början. Den verkar vara lite gammal med sina exempel från OS 9, men duger. MacScripter ser bra ut.

Länk till kommentar
Dela på andra webbplatser

Det har dock dykt upp ett felmeddelande när jag kör mitt script som en plugg-in till Finder eller som en egen application:

 

ASReceiverEvaluationScriptError: 4 (1)

 

Scriptet fungerar alltså från Automator men inte som plug-in eller fristående applikation. Något bekant problem eller är det Automators export som är problemet?

 

 

Vad märkligt. Nej, jag vet inte vad detta kan bero på. Skriptet fungerar utmärkt som egen applikation i min MacBook med Tiger 10.4.9 och...jag är inte säker på vad du menar med "plug-in"? Men om det innebär att köra skriptet från script-mappen i ditt användarbibliotek så fungerar det också utmärkt när jag prövar.

 

Faktum är att jag kan inte ens hitta feltypen

när jag 'googlar' på den. Är det inte ett "NSReceiverEvaluationScriptError: 4 (1)" som du får?

 

Åtgärd nr 1: kan du posta din skriptkod? [fast jag förmodar att den är OK eftersom det fungerar i Automator]

 

2: Använder du OS Tiger?

 

3: När jag spar skriptet som programpaket kryssar jag inte för någon av "Startskärm" eller "Lämna manuset öppet" - har du gjort likadant?

 

4. Felsökning: görs med fördel i skripteditorn i vilken man kan pröva koden sektionsvis. Enklast är att använda klamrarna (* *) mellan vilka de delar av koden som inte ska användas placeras (så slipper man hålla på och radera respektive återinskriva mängder av kod medan man testar). Vad som är särskilt bra med skripteditorn - överhuvud taget är det bra att spara skriptet som manus under ett skripts utvecklingsfas - är att man ser resultatet av skriptets aktivitet returnerat i nederkanten av editorn.

 

Exempel - test av skriptets första rader:

 

tell app "Finder"

activate

 

set new_folder to folder "Picture Export Web" of desktop

 

end tell

 

(* obs att "end tell" behöver stå med för att avsluta det s k tell-blocket som inleder skriptet - när du testar olika koddelar behöver du ha med lika många avslutande 'end tell' som du har påbörjade tell-block - annars kommer editorn att hävda att koden är felaktig och vägra kompilera *)

 

I botten av skript-editorn ska denna korta kod ge hela sökvägen till samt namnet på mappen "Picture Export Web" (förutsatt att mappen finns där den ska och är rätt namngiven). Därmed fås bekräftelse på att skriptet har placerat korrekt information i variabeln "new_folder". Osv

 

Ett sätt att kontrollera fel kan också vara att ta bort alla "try" och "end try" ur skriptet. Detta minskar toleransmarginalerna hos koden och man kan åtminstone hoppas på lite mer upplysande felmeddelanden (hela "on error"-delen av koden måste också tas bort om du tar bort den delen av 'try/end try'). Dock är den testmetoden egentligen bäst för fall då man inte får några felmeddelanden alls. Dessvärre verkar den typ av felmeddelande som innehåller "EvaluationError" kunna röra sig om mer komplicerade saker och som möjligen kan bero på inställningar i datormiljön som inte direkt berör skriptet eller de objekt som skriptet anropar (det är åtminstone det intryck jag fick efter att ha 'googlat' som hastigast på ämnet).

 

Vad åtminstone ett test med körning av bitvisa delar av koden bör kunna ge är att det kanske går att lokalisera var i koden felet uppstår. Men publicera som sagt gärna din skriptkod som en första åtgärd.

Länk till kommentar
Dela på andra webbplatser

Sen tanke: jag förmodar att tekniken i forumet tillåter att du laddar upp skriptfilen? Då kan jag testa den i min datormiljö och se om jag får samma fel.

Länk till kommentar
Dela på andra webbplatser

Sen tanke nr 2: att jag inte är någon expert på AS har du ju märkt vid det här laget (jag kan bara komma med förslag när det gäller felet - och möjligen har du bättre ideer själv). Men en sak som jag funnit och som möjligen kan leda till en lösning: om skriptkoden placeras i skripteditorn samt med klickande på 'eventlogg' längs ned i editorn innan skriptet körs finns möjligheten att det syns i skriptets beskrivning av kodexekveringen var felet uppstår.

Länk till kommentar
Dela på andra webbplatser

jonas.rundqvist

Igen, tusen tack för förslagen. Jag skall titta igenom dina idéer och förslag noggrant men har för tillfället ett par veckors semester som sätter käppar i hjulen för mina AppleScript-planer. Jag återkommer, även om det kanske tar ett tag innan jag har tid att fortsätta med scriptet.

 

Mvh,

 

Jonas

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...