[GastForen Programmierung/Entwicklung AppleScript Ordneraktions-Entwicklung: So ist es weniger mühsam

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ordneraktions-Entwicklung: So ist es weniger mühsam

Hans Haesler
  
Beiträge gesamt: 5826

15. Jun 2005, 12:53
Beitrag # 1 von 1
Bewertung:
(297 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

wer schon mal eine Ordneraktion geschrieben oder abgeändert hat, der weiss, wie mühsam dies sein kann.
Schon nur, weil man bei Fehlern keine Rückmeldungen erhält und auch das Eventprotokoll leer bleibt.

Deshalb kann man während der Entwicklungsphase den folgenden Trick anwenden, damit das Script nicht
an einen Ordner angefügt werden muss, sondern ab dem Editor gestartet werden kann.
---
on adding folder items to theFolder after receiving thoseFiles
   -- do your stuff here
end adding folder items to

on run
   set theFile to choose file
   set theFolder to choose folder
   adding folder items to theFolder after receiving {theFile}
end run

---
Dieser Code wurde von Jean-Baptiste LE STANG an die AS-users-Mailingliste gepostet. Die Aufgabe der
"System Events" übernimmt der 'run'-Handler. Dieser muss aber nicht einmal entfernt werden, bevor die
Ordneraktion an einen Ordner gehängt wird.

Ich benutzte diese Taktik kürzlich, um das Zeitmessungs-Script zu testen. Es gelingt auch mit zwei
Ordneraktionshandlern im gleichen Script:
---
global OpenZeit

on opening folder
   set OpenZeit to current date
end opening folder

on closing folder window for this_folder
   set CloseZeit to current date
   set Ablauf to CloseZeit - OpenZeit
   display dialog "Der Ordner war " & Ablauf & " Sekunden geöffnet."
end closing folder window for

on run
   set this_folder to choose folder
   opening folder this_folder
   delay 2
   closing folder window for this_folder
end run

---
Aber aufgepasst: Man kann getäuscht werden. Die Definierung von 'OpenZeit' als 'global' ist notwendig,
damit der Wert im 'closing'-Handler erkannt wird. Aber bei einer "echten" Ordneraktion gelingt dies
nicht (unter Panther). Deshalb wird die Zeit im finalen Script in eine Datei geschrieben.

Gruss, Hans
X