hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Anonym
Beiträge: 22827
25. Aug 2003, 23:47
Beitrag #1 von 6
Bewertung:
(960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


Hallo Hans,

wenn ein ScreenShot erzeugt wird, so wird auf der System HD ein "Bild 1" erzeugt.

a. dieses "Bild 1" sollte in einen vorhandenen Ordner "bildordner" verschoben und umbenannt werden nach "bildpos1"

b. Beim nächsten ScreenShot sollte das  neue "Bild 1" das "bildpos1" im "bildordner" ersetzen.

ist so was machbar?!
Gruss willem Top
 
X
Hans Haesler  M  p
Beiträge: 5414
26. Aug 2003, 17:46
Beitrag #2 von 6
Beitrag ID: #418267
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


Hallo Willem,

ja, es ist machbar. Aber ich gebe zu, dass ich jetzt eine gute halbe Stunde geübt habe, bis ich mit der Lösung
zufrieden war. Wenn ich die Variablen ausserhalb des Scripts definierte, dann ergab dies einen Ausführungsfehler,
obwohl sie als 'global' deklariert waren. Schliesslich versuchte ich es mit 'property'... und siehe da: es klappt.

Wenn der "bildordner" nicht direkt in der Harddisk liegt, dann musst Du den Pfad entsprechend ergänzen.

Den folgenden Code als normales, kompiliertes Script auf der Harddisk in einen Ordner sichern. Dann den Mauszeiger
auf das Icon der Harddisk richten, die Control-Taste niederhalten, die Maustaste drücken und im Kontextmenü den
Artikel "Aktion an Ordner anfügen..." wählen. Im Dialog das Script auswählen und auf "Öffnen" klicken.
---
property diskPath : (path to startup disk as string)
property newName : "bildpos1"
property newFile : (diskPath & newName)
property newFolder : (diskPath & "bildordner:")

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    set fullPath to (aFile as string)
    if fullPath ends with ":" then
    else
      set AppleScript's text item delimiters to {":"}
      set oldName to text item -1 of fullPath
      set AppleScript's text item delimiters to {""}
      if oldName = "Bild 1" then
        tell application "Finder" to set name of file fullPath to newName
        tell application "Finder" to move file newFile to folder newFolder with replacing
      end if
    end if
  end repeat
end adding folder items to
---
Wenn das Fenster der Harddisk geöffnet ist, dann reagiert das Script auf jedes Objekt, welches hineingelegt wird.
Deshalb wird geprüft, ob der Name stimmt. Und nur dann wird die Aktion ausgeführt.

Jetzt hoffe ich, dass es bei Dir auch so gut funktioniert wie hier.

Hans Haesler, hsa<=@ringier.ch
als Antwort auf: [#418266] Top
 
Anonym
Beiträge: 22827
26. Aug 2003, 19:13
Beitrag #3 von 6
Beitrag ID: #418268
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


Hallo Hans,

bei mir funktioniert es nicht so ganz, wahrscheinlich ein Pfad-Konflikt oder so was ähnliches.

Der Name meiner StartUp disk ist "System HD"
direkt auf dieser existiert der Ordner "bildordner"
auf der System HD befindet sich der erste Screenshot "Bild 1"

Nun habe ich dem "bildordner" deine Aktion zugewiesen und diesen geöffnet.
Das "Bild 1" sollte nun in den "bildordner" verschoben werden... 
(ist das per Skript möglich?)

Nachdem ich das "Bild 1" in den Ordner verschoben hatte, wurde es umbenannt als "bildpos1"
anschliessende Fehlermeldung "Fehler -1728"

Hintergrund
Ziel dieser Aktion ist:
aus einem Layoutprogramm einen Screenshot zu machen, welcher autom. im "bildordner" als "bildpos1" landet. Diesen Screenshot importiere ich danach per MacroMedia-Director, um es dort auf die Bühne zu bringen.

Gruss und Danke
willem
als Antwort auf: [#418266] Top
 
Anonym
Beiträge: 22827
26. Aug 2003, 20:52
Beitrag #4 von 6
Beitrag ID: #418269
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


hab gerade per Aufzeichnen ein Script erstellt.
es funktioniert aber bei einem neuen "Bild 1" wird das "bildpos1" nicht überschrieben.

tell application "Finder"
 activate
 select file "Bild 1" of startup disk
 move selection to folder "bildordner" of startup disk
 activate
 select file "Bild 1" of folder "bildordner" of startup disk
 set name of selection to "bildpos1"
end tell

bei diesem Laien-Script ziehts Dir bestimmt die Schuhe aus
Gruss willem
als Antwort auf: [#418266] Top
 
Hans Haesler  M  p
Beiträge: 5414
26. Aug 2003, 23:12
Beitrag #5 von 6
Beitrag ID: #418270
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


Stop, stop, stop...

Du musst die Ordneraktion der Start-Up-Disk zuweisen. Dort werden ja die temporären Screenshots
erzeugt. Und dadurch wird die Ordneraktion ausgelöst, welche als erstes prüft, ob die neue Datei "Bild 1"
heisst. Das Fenster der Start-Up-Disk muss offen sein, damit es funktioniert.

Wenn nun die neue Datei ein "Bild 1" ist, dann wird der "Finder" aufgefordert, diese Datei umzubenennen
und mit dem nächsten Befehl in den "bildordner" zu verschieben. Mit dem Zusatz 'with replacing' wird
eine schon vorhandene Datei überschrieben.

Ach ja... die Schuhe hatte ich schon vorher ausgezogen. ;-)

Aber ich habe meinen Code nun in Ruhe betrachtet und ihn etwas gestrafft. Statt dass mit 'if fullPath
ends with ":"' geprüft wird, ob das Objekt ein Ordner ist oder nicht, wird das Ende des Pfades direkt mit
"Bild 1" verglichen. So muss man nicht mehr die 'text item delimiters' bemühen, um den Namen abzutrennen:
---
property diskPath : (path to startup disk as string)
property newName : "bildpos1"
property newFolder : (diskPath & "bildordner:")

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    set fullPath to (aFile as string)
    if fullPath ends with ":Bild 1" then
      tell application "Finder" to set name of file aFile to newName
      tell application "Finder" to move file aFile to folder newFolder with replacing
    end if
  end repeat
end adding folder items to
---
Bei Übereinstimmung wird dem Finder das Alias zum Umbenennen und Verschieben übergeben. Weil es eine
Alias-Referenz ist, spielt es keine Rolle, dass die Datei nach dem ersten Befehl einen anderen Namen hat.

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418266] Top
 
Anonym
Beiträge: 22827
27. Aug 2003, 09:00
Beitrag #6 von 6
Beitrag ID: #418271
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Ordneraktion mit Bild 1 (Screenshot)


Hallo Hans,

nun hab ichs geschnallt. Dein Script funktioniert einwandfrei.
(Hatte die Ordneraktion nicht der Startup disk zugewiesen)

vielen Dank
willem
als Antwort auf: [#418266] Top
 
X