AppleScript mit mehreren Aktionen

Dieses Thema im Forum "Software" wurde erstellt von Floker, 10. Juni 2005.

  1. Floker

    Floker New Member

    Guten Tag,


    ich möchte ein AppleScript erstellen, mit dem ich mehrere Aktionen hintereinander machen kann und das auch noch zusätzlich mit einer Taste (z.B. F3 ) startbar ist, (das wäre optimal!), und zwar soll es:

    eine selektierte datei aus dem jeweiligen Ordner auf den desktop kopieren, die Kopie wieder auswählen, das Suffix ändern und dann mit dem Quicktime Player öffnen. Und das alles möglichst mit einem Tastendruck auf F3.

    Soweit zur Theorie. Die Praxis ist noch nicht arg weit fortgeschritten, nur soweit:

    tell application "Finder"
    activate
    copy selection to desktop

    end tell

    und dann habe ich noch ein rename-Script aus dem Netz . Erstes Problem:
    Wie bekomme ich den Finder dazu, die Kopie wieder auszuwählen, um die nächsten Aktionen darauf referenzieren zu können, dann wäre der Rest eigentlich kein Problem mehr (hoffe ich)

    Ich freue mich über jede Unterstützung.


    Grüße,
    -Floker
     
  2. Olley

    Olley Gast

    hallo,
    du könntest doch nach dem "copy selection to desktop" den namen der datei in eine variable schreiben. dann setzt du noch den pfad zum desktop vor die variable und kannst die datei auswählen.

    habe jetzt keine lust zum testen da ich gleich weg muss. vielleicht habe ich später ein wenig laune auf applescript und poste das ergebnis hier. mal schauen.
     
  3. Lou Kash

    Lou Kash New Member

    Tipp: Schau dir mal diverse Beispielskripte in /Library/Scripts/ an. Dort kannst du Portiönchen abgucken und weiterverwenden. Ich gehe jeweils auch so vor. Dafür sind diese Skripte ja da.
     
  4. Floker

    Floker New Member

    Ja aber das Problem ist, dass ich die Kopierte datei dann immer wieder löschen muss, wenn ich mit einer weiteren so verfahren möchte. Weil sie dann wieder genau gleich heißt, oder ?


    -Floker
     
  5. Floker

    Floker New Member

    Ich habe jetzt das Skript das ich hatte so abgändert, das ich wenn ich eine Datei markiert habe , dass es dann das Skript über diese Datei laufen lässt. (der teil mit der kopie fällt weg) ( Fragmente von licetBovi)


    on run
    tell application "Finder"
    activate
    copy name of selection to clipboard
    end tell
    set selection to nennmich(MyFile as alias)

    end run
    on nennmich(MyFile)
    set SufAlt to ".mov"
    set SufNeu to ".mpg"

    tell application "Finder"
    activate
    set nn to name of document file MyFile
    set n2 to (offset of SufAlt in nn) - 1
    set neuname to (characters 1 thru n2 of nn as string) & SufNeu
    set name of document file MyFile to neuname
    end tell
    end nennmich



    aber irgendwie mag der finder das clipboard nicht und ich erhalte folgende Fehlermeldung :clipboard kann nicht als name of selection gesetzt werden!
    Kann mir jemand sagen, ob ich den Namen als string umwandeln muss ? (wie?) un kann man ApfelSkripte überhaupt mit einem Tastendruck starten?


    Freue mich über eure Hilfe,
    -Floker
     
  6. Olley

    Olley Gast

    benutze doch am anfang deines skripts choose file
    dann musst du die zu kopierende datei nicht markieren.



    wieso schreibst du den dateinamen nicht in eine variable?
     
  7. Floker

    Floker New Member

    danke, aber das problem ist, dass die dateien bei mir immer anders heißen. und wenn ich einen festen wert eingebe, funktioniert das nicht. deshalb dachte ich, das das mit selektion eigentlich ganz günstig wäre
     
  8. Olley

    Olley Gast

    tell app "Finder"
    choose file
    end tell

    kopier das mal in den as-editor und klick auf ausführen. du kannst die datei dann im fenster "dokument auswählen" des finders auswählen.
     
  9. Floker

    Floker New Member

    Danke.Es funktioninert. Aber es geht mir um denv automatismus, die aktion über die selektierte Datei im Finder laufen zu lassen. Das sieht dann so aus: ich habe ein Fenster offen mit mehreren Dateien, klicke immer eine an, um sie zu selektieren und möchte dann nur noch eine funktionstaste drücken um automatisch das Suffix zu ändern und im Quicktime player anzuschaun (öffnen).Bisher haqbe ich die dati immer auf das Suffixändern-Skript gezogen, dann kurz gewartet und dann auf den QuicktimePlayer gezogen.Ich dache, das wäre sehr komfortabel mit skript...
     
  10. WoSoft

    WoSoft Debugger

    das mit dem Drücken der Funktionstaste in AppleScript funzt nicht. Ein Script kann zwar auf einen Tastendruck warten, aber das nur, wenn es den Fokus hat (es das aktive Programm ist).
    Aber schau dir mal die Ordneraktionen an (die mitgelieferten Beispiele). Bei Ordneraktionen passiert immer etwas, wenn ein Objekt auf einen Ordner gezogen wird.
     
  11. LicetBovi

    LicetBovi New Member

    Wahrscheinlich wäre für deine Zwecke ein Droplet am sinnvollsten.
    Das könnte dann so aussehen:

    Code:
    on run -- falls das Skript per Doppelklick aufgerufen wird, muss die Datei abgefragt werden
    	set MeineDatei to (choose file)
    	MeineFunktion(MeineDatei as alias)
    end run
    on open MeineDatei
    	-- falls eine Datei auf das Droplet gezogen wird
    	MeineFunktion(MeineDatei as alias)
    end open
    
    on MeineFunktion(MeineDatei)
    	-- kopiert die Datei auf den Desktop und ändert das Sufix von .mov in .mpg
    	set SufAlt to ".mov"
    	set SufNeu to ".mpg"
    	
    	tell application "Finder"
    		set MeinName to name of file MeineDatei -- speichert den Namen der Datei
    		
    		duplicate file MeineDatei to desktop -- kopiert die Datei auf den Desktop
    		set MeinDuplikat to file MeinName in desktop as alias -- speichert den Pfad zur neuen Datei (stimmt nicht ganz, ist aber egal)
    		
    		
    		
    		set n2 to (offset of SufAlt in MeinName) - 1
    		set neuname to (characters 1 thru n2 of MeinName as string) & SufNeu
    		set name of file MeinDuplikat to neuname -- benennt die Datei um
    		set MeinDuplikat to file neuname in desktop as alias -- erforderlich, da die Datei jetzt anders heißt
    		
    	end tell
    	
    	tell application "QuickTime Player"
    		activate -- bringt den QuickTime Player in den Vordergrund
    		open MeinDuplikat -- öffnet das Duplikat auf dem Desktop...
    		play movie neuname -- und spielt sie ab.
    	end tell
    end MeineFunktion
    
    Jetzt brauchst du lediglich deine Filmdatei auf das als Programm gespeicherte Skript zu ziehen.
    (Bitte zu beachten, dass dieses Skript keinerlei Fehler abfängt oder dergleichen! Die Benutzung erfolgt auf eigene Gefahr. Aber die scheint hier ja nicht so groß zu sein ;))

    Grüße,


    Klas
     
  12. Fischer-Bayern

    Fischer-Bayern New Member

    get selection

    Sieh dir mal das Ergebnis an. - Es ist eine Liste (auch wenn nur eine Datei ausgewählt war).
    Du fragst also nach dem Namen der Liste - deshalb kommt die Fehlermeldung.

    Aber das Clipboard braucht man ja gar nicht - wozu gibt es denn Variablen.
    Du könntest dein Skript auch so beginnen:

    tell application "Finder"
    --activate
    set Auswahl to selection
    set eineDatei to item 1 of Auswahl as alias
    set Duplikat to (duplicate eineDatei to desktop with replacing) as alias
    set DateiName to name of Duplikat
    end tell


    Ich starte meine wichtigsten AppleScripts per Tastenkombination. Dazu verwende ich das Programm "Spark" als Skriptlauncher und weise auch dort die Tastenkombination zu. Alternativen zu Spark wären noch "Butler" oder "iKey".
     

Diese Seite empfehlen