• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Frühling ist auch in den eingesandten Fotos deutlich zu erkennen. Zeigt uns, wer Euer Favorit ist! hier geht es lang für Euer Voting --> Klick

Datei im Ordner speichern (Pfade)

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Hallo zusammen,

ich stelle mich einfach zu blöd an.;)

ich möchte per AppleScript eine Bildschirmfoto in einem bestimmten Ordner speichern:

/Users/Julian/Ordner/Unterordner

Doch ich stelle mich zu doof an:-co_O

Kann jemand dieses kurzen Skriptschnipsel kurz posten?

Viele Dank.
 
Zuletzt bearbeitet:

salome

Golden Noble
Registriert
20.08.06
Beiträge
23.750
Das sollte mit dem Automator gehen, für solche einfachen Aktionen ist er da.
Und wenn du das nächste Mal einen aussagekräftigen Titel machst, bekmmst du auch mehr Antworten. "Pfad" bedeutet gar nichts.
Salome
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Nur der Screenshot soll gemacht werden sobald ein Programm beendet wird. Das muss ich leider mit AppleScript machen.
Die Abfrage ob das Programm noch offen ist, funktioniert.
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Das funktioniert auch soweit alles, nur wie speicher ich jetzt die Bilder in dem dafür angedachten Ordner? Daran scheitere ich kläglich;):eek:.
 

Guy.brush

Weißer Winterkalvill
Registriert
15.12.08
Beiträge
3.545
Den Pfad mit angeben:

Code:
[B]property[/B] [COLOR=#539214]N[/COLOR] : 0
[B]set[/B] [COLOR=#539214]N[/COLOR] [B]to[/B] [COLOR=#539214]N[/COLOR] + 1
[B]set[/B] [COLOR=#539214]picPath[/COLOR] [B]to[/B] "/Users/Julian/Ordner/Unterordner/" & "Dateiname " & [COLOR=#539214]N[/COLOR] & ".png" [B]as[/B] [COLOR=#3300fb][I]string[/I][/COLOR]
[COLOR=#2417bb][B]do shell script[/B][/COLOR] "screencapture -tjpg " & [COLOR=#8200d9]quoted form[/COLOR] [B]of[/B] [COLOR=#539214]picPath[/COLOR]
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Habe es geschaftt, nun stehe ich vor einem weiteren Problem. Ich möchte erst einen neuen Ordner erstellen, in den ich die Screenschots speichere. Das habe ich so gemacht:
Code:
[B]set[/B] [COLOR=#528e13]mainFolder[/COLOR] [B]to[/B] [COLOR=#033efc][I]folder[/I][/COLOR] "Ordner" [B]of[/B] [COLOR=#7f38d9]desktop[/COLOR] [B]as[/B] [COLOR=#033efc][I]string
[/I][/COLOR][COLOR=#033EFC][COLOR=#000000]	[/COLOR][B]make[/B][COLOR=#000000] [/COLOR]new[COLOR=#000000] [/COLOR][I]folder[/I][COLOR=#000000] [/COLOR]at[COLOR=#000000] [/COLOR][I]folder[/I][COLOR=#000000] [/COLOR][COLOR=#528e13]mainFolder[/COLOR][COLOR=#000000] [/COLOR]with properties[COLOR=#000000] {[/COLOR][COLOR=#7f38d9]name[/COLOR][COLOR=#000000]:[/COLOR][COLOR=#528e13]dateTime[/COLOR][COLOR=#000000]}[/COLOR][/COLOR]
Der Name des neu erstellten Ordners setzt sich aus Datum und Uhrzeit zusammen (z.B. 18082011_2356), wechselt also immer. Wie mache ich das jetzt, dass das Bildschirmfoto darin gespeichert wird, ohne das ich den Ordnernamen kenne???
 

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Nur Teile deines Codes zu posten, ist nicht wirklich sinnvoll.
So kann ich leider auch nur einen Teil posten:

set n to make new folderat folder mainfolder with properties {name:dateTime}
set n to POSIX path of (n as alias)
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Hier dann jetzt mal das komplette Skript:

Code:
[COLOR=#922691]property Programm : 1
[/COLOR][COLOR=#922691]set dateTime to do shell script "date +%d%m%Y_%H%M"[/COLOR]
[COLOR=#922691]property mainfolder : "festplatte:users:julian:desktop:ordner:"[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]tell application "Finder"[/COLOR]
[COLOR=#922691]    set mainFolder to folder "ordner" of desktop as string[/COLOR]
[COLOR=#922691]    make new folder at folder mainFolder with properties {name:dateTime}[/COLOR]
[COLOR=#922691]end tell[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]set n to (make new folder at folder mainFolder with properties {name:dateTime})[/COLOR]
[COLOR=#922691]set n to POSIX path of (n as alias)[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]set theCommand to ("screencapture " & n)[/COLOR]
[COLOR=#922691]do shell script (theCommand & dateTime & -tjpg)[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]tell application "System Events"[/COLOR]
[COLOR=#922691]    repeat[/COLOR]
[COLOR=#922691]        if exists application process "Programm" then[/COLOR]
[COLOR=#922691]            [/COLOR]
[COLOR=#922691]        else[/COLOR]
[COLOR=#922691]            set theCommand to ("screencapture " & n)[/COLOR]
[COLOR=#922691]            do shell script (theCommand & dateTime & -tjpg)[/COLOR]
[COLOR=#922691]            set Programm to 0[/COLOR]
[COLOR=#922691]            [/COLOR]
[COLOR=#922691]        end if[/COLOR]
[COLOR=#922691]        if (Programm = 0) then exit repeat[/COLOR]
[COLOR=#922691]    end repeat[/COLOR]
[COLOR=#922691]end tell[/COLOR]

Hatte alles fertig gemacht und das Programm ins Dock gezogen. Da wollte ich es nun doch nicht haben, habe es einfach rausgezogen und "verpuffen" lassen. Jetzt ist alles weg und ich hatte noch kein Backup gemacht:-c:mad::-c:mad::-c
Ich arbeite das erste mal mit Automator und AppleScript, und jetzt habe ich es nicht alles wieder so hinbekommen wie vorher...
Es taucht der Fehler auf
Es wurde „„,““ erwartet, aber ein „Identifier“ wurde gefunden.
An der Stelle
Code:
set n to (make new folder at folder mainFolder with properties {name:dateTime})
und mainfolder ist markiert.
 

Guy.brush

Weißer Winterkalvill
Registriert
15.12.08
Beiträge
3.545
Wenn du das Programm im Dock hattest, muss es noch irgendwo als Datei vorliegen, da sich im Dock nur Verknüpfungen befinden.

Probier das mal:

Code:
[B]set[/B] [COLOR=#539214]dateTime[/COLOR] [B]to[/B] [COLOR=#2417bb][B]do shell script[/B][/COLOR] "date +%d%m%Y_%H%M"

[B]tell[/B] [COLOR=#3300fb][I]application[/I][/COLOR] "Finder"
    
[COLOR=#5f6161]--benutzt den Ordner "Ordner" am Desktop, dieser muss schon vorhanden sein[/COLOR]
[COLOR=#5f6161]--set mainfolder to folder "Ordner" of desktop as string[/COLOR]
    
[COLOR=#5f6161]-- benutzt den Desktop direkt[/COLOR]
    [B]set[/B] [COLOR=#539214]mainfolder[/COLOR] [B]to[/B] [COLOR=#8200d9]desktop[/COLOR] [B]as[/B] [COLOR=#3300fb][I]string[/I][/COLOR]
    
[COLOR=#3300fb][COLOR=#000000]    [B]set[/B] [/COLOR][COLOR=#539214]n[/COLOR][COLOR=#000000] [B]to[/B] ([/COLOR][B]make [/B]new [I]folder [/I]at [I]folder [/I][COLOR=#539214]mainfolder [/COLOR]with properties[COLOR=#000000] {[/COLOR][COLOR=#8200d9]name[/COLOR][COLOR=#000000]:[/COLOR][COLOR=#539214]dateTime[/COLOR][COLOR=#000000]})[/COLOR][/COLOR]
    [B]set[/B] [COLOR=#539214]n[/COLOR] [B]to[/B] [COLOR=#8200d9]POSIX path[/COLOR] [B]of[/B] ([COLOR=#539214]n[/COLOR] [B]as[/B] [COLOR=#3300fb][I]alias[/I][/COLOR])
    
[B]end[/B] [B]tell[/B]


[COLOR=#2417bb][B]do shell script[/B][/COLOR] "screencapture -tjpg " & [COLOR=#539214]n[/COLOR] & [COLOR=#539214]dateTime[/COLOR] & ".png"
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Wenn ich den Namen im Finder suche, ist nur noch das Alias vorhanden und es wird mir gesagt, dass das Original nicht gefunden wurde...

Trotz deiner Hilfe bekomme ich es nicht gebacken:-[
 

Guy.brush

Weißer Winterkalvill
Registriert
15.12.08
Beiträge
3.545
Das ist natürlich nur der Teil mit dem Erstellen des Screenshots. Funktioniert der Code aus meinem vorherigen Post, wenn du ihn in den AppleScript Editor kopierst und ausführst?

Woran scheitert es denn?

Am Besten, du fängst mal bei 0 an und erklärst uns, was du eigentlich machen willst, welches Programm das ist und in welchem Ordner genau die Screenshots landen sollen...
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Juhu, alles Geschafft.
Vielen Dank für deine Hilfe.
Finde übrigens deinen Benutzernamen und deine Signatur total cool ;)
 

Julian94

Gala
Registriert
15.05.11
Beiträge
51
Habe doch noch ein Problem.
Dieses Skript funzt super für Aperture:

Code:
[B]set[/B] [COLOR=#528e13]dateTime[/COLOR] [B]to[/B] [COLOR=#0235bb][B]do shell script[/B][/COLOR] "date +%d%m%Y_%H%M"

[B]tell[/B] [COLOR=#033efc][I]application[/I][/COLOR] "Finder"
    [B]set[/B] [COLOR=#528e13]mainFolder[/COLOR] [B]to[/B] [COLOR=#033efc][I]folder[/I][/COLOR] "Aperture" [B]of[/B] [COLOR=#033efc][I]folder[/I][/COLOR] "Ordner" [B]of[/B] [COLOR=#7f38d9]desktop[/COLOR] [B]as[/B] [COLOR=#033efc][I]string[/I][/COLOR]
[COLOR=#033efc][COLOR=#000000]    [B]set[/B] [/COLOR][COLOR=#528e13]N[/COLOR][COLOR=#000000] [B]to[/B] ([/COLOR][B]make[/B]new[I]folder[/I]at[I]folder[/I][COLOR=#528e13]mainFolder[/COLOR]with properties[COLOR=#000000] {[/COLOR][COLOR=#7f38d9]name[/COLOR][COLOR=#000000]:[/COLOR][COLOR=#528e13]dateTime[/COLOR][COLOR=#000000]})[/COLOR][/COLOR]
    [B]set[/B] [COLOR=#528e13]N[/COLOR] [B]to[/B] [COLOR=#7f38d9]POSIX path[/COLOR] [B]of[/B] ([COLOR=#528e13]N[/COLOR] [B]as[/B] [COLOR=#033efc][I]alias[/I][/COLOR])
[B]end[/B] [B]tell[/B]


[B]set[/B] [COLOR=#528e13]theCommand[/COLOR] [B]to[/B] ("screencapture " & [COLOR=#528e13]N[/COLOR])
[COLOR=#528e13][COLOR=#0235bb][B]do shell script[/B][/COLOR][COLOR=#000000] ([/COLOR]theCommand[COLOR=#000000] & [/COLOR]dateTime[COLOR=#000000] & ".png")[/COLOR][/COLOR]


[B]property[/B] [COLOR=#528e13]Aperture[/COLOR] : 1


[B]tell[/B] [COLOR=#033efc][I]application[/I][/COLOR] "System Events"
    [B]repeat[/B]
[COLOR=#033efc][COLOR=#000000]        [B]if[/B] [/COLOR][B]exists[/B][I]application process[/I][COLOR=#000000] "Aperture" [B]then[/B][/COLOR][/COLOR]
            
        [B]else[/B]
            [COLOR=#0235bb][B]do shell script[/B][/COLOR] ("screencapture " & [COLOR=#528e13]N[/COLOR] & [COLOR=#528e13]dateTime[/COLOR])
            [B]set[/B] [COLOR=#528e13]Aperture[/COLOR] [B]to[/B] 0
        [B]end[/B] [B]if[/B]
        [B]if[/B] ([COLOR=#528e13]Aperture[/COLOR] = 0) [B]then[/B] [B]exit[/B] [B]repeat[/B]
    [B]end[/B] [B]repeat[/B]
[B]end[/B] [B]tell[/B]


Sobald ich den Arbeitsablauf starte, wird das Programm gestarten (mit Automator gemacht). Direkt danach wird dann der erste Screenshot gemacht. Wenn ich das Programm dann irgendwann beende wir wieder ein Screenshot gemacht.
Doch wenn ich das gleiche mit iWeb machen will, macht er am Anfang direkt zwei Screenshots hintereinander, anstatt auf das Beenden des Programmes zu warten. Könnte das an "iWeb.app" liegen? Weil das gleich Problem habe ich auch mit Vorschau und Gimp (auch beides .app)...

Code:
[COLOR=#922691]set dateTime to do shell script "date +%d%m%Y_%H%M"[/COLOR][COLOR=#922691]
[/COLOR]
[COLOR=#922691]tell application "Finder"[/COLOR]
[COLOR=#922691]    set mainFolder to folder "iWeb" of folder "Ordner" of desktop as string[/COLOR]
[COLOR=#922691]    set N to (make new folder at folder mainFolder with properties {name:dateTime})[/COLOR]
[COLOR=#922691]    set N to POSIX path of (N as alias)[/COLOR]
[COLOR=#922691]end tell[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]set theCommand to ("screencapture " & N)[/COLOR]
[COLOR=#922691]do shell script (theCommand & dateTime & ".png")[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]property iWeb : 1[/COLOR]
[COLOR=#922691]
[/COLOR]
[COLOR=#922691]tell application "System Events"[/COLOR]
[COLOR=#922691]    repeat[/COLOR]
[COLOR=#922691]        if exists application process "iWeb.app" then[/COLOR]

[COLOR=#922691]        else[/COLOR]
[COLOR=#922691]            do shell script ("screencapture " & N & dateTime)[/COLOR]
[COLOR=#922691]            set iWeb to 0[/COLOR]
[COLOR=#922691]        end if[/COLOR]
[COLOR=#922691]        if (iWeb = 0) then exit repeat[/COLOR]
[COLOR=#922691]    end repeat[/COLOR]
[COLOR=#922691]end tell[/COLOR]

Aber auch hier soll der zweite Screenshot erst beim beenden gemacht werden, und nicht direkt nach dem ersten...

Weiß jemand eine Lösung?