Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Dokument abarbeiten bevor ein Volume ausgeworfen wird
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 14.08.2006 - 09:10    Titel: Dokument abarbeiten bevor ein Volume ausgeworfen wird Antworten mit Zitat

Hallo

ich habe meine wichtigsten Daten auf einer externen Festplatte, die ich morgens und abends mit der internen synchronisiere, um zuhause immer mit den aktuellsten Daten zu arbeiten. Da verfahre ich ähnlich. Dabei verwende ich das Programm Chronosync, mit dem ich zufrieden bin. Es ist auch Applescript fähig. Wink

Solange ich daran denke (!) das zu tun, ist alles kein Problem, aber noch besser wäre es, wenn ich beim Abmelden der Platte automatisch die Synchronisierung machen lassen könnte. Beim Anmelden der Platte kann ich das per Chronosync selber machen, für die Abmeldung müsste ich etwas basteln.

Hat jemand eine Idee, wie ich das Auswerfen der Platte per Applescript abfangen könnte? Am liebsten wäre mir, wenn ich die Platte nach wie vor per Dreieck im Finder auswerfen könnte. Wenn ich mich daran erinnern müsste, stattdessen ein Applescript zu starten, wäre nicht viel gewonnen (Stichwort Vergesslichkeit).

Falls jemand eine Idee hätte, wäre ich dankbar für einen Tipp.

Prion
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 14.08.2006 - 14:23    Titel: Antworten mit Zitat

Prion hat Folgendes geschrieben:
(Stichwort Vergesslichkeit)
das einzige was ich auch auswändig aufsagen kann Wink
Du kennst sicher den APFEL+E Befehl, um eine Platte auszuwerfen.
Weil ich mir den merken konnte, habe ich mir für all diese komplizierten Dinge wie Backup-Programme anhängen und sonst noch untersuchen wer auf Schreitisch geladen ist...den Befehl Alt+E reserviert. Das wäre dann also eine E-selsbrücke fürs Platten Auswerfen. Also statt deinem
prion hat Folgendes geschrieben:
per Dreieck im Finder
¿¿(was immer das ist) mit Alt+E-Tastenkombination alles ins rollen brächtest.
Embarassed der Vorschlag natürlich nur deshalb, weil ich nicht weiss, wie man bewirkt dass automatisch ein AS startet das dir beim Vorgang
prion hat Folgendes geschrieben:
per Dreieck im Finder
¿¿ agieren über die Schulter blicken könnte. Vielleicht weiss das jemand?

Am naheliegensten wäre doch ein "droplet"-AppleSkript-Programm über das du die gebootete Platte ziehen kannst auf dem Finder oder genauer: auf dem Schreibtisch. Dieses droplet kannst du übrigens auch so bauen, dass es ebenfalls mit Alt+E-Tastenkombination gestartet werden kann, dann hättest du 2 verschiedene Auslöser kreiert .
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 14.08.2006 - 18:17    Titel: Antworten mit Zitat

Pardon, da war ich zu ungenau. Normalerweise würde ich ein Volume auswerfen, indem ich im Finderfenster oben links auf das nach oben weisende Dreieck neben dem Volume Namen für die externe Platte klicken würde.
Am liebsten wäre mir, wenn ich Schusssel das weiterhin so machen könnte, auch wenn das aufwendiger zu realisieren wäre als eine Skript mit Apfel-E (kannte ich im übrigen nicht).

danke noch mal

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 15.08.2006 - 11:56    Titel: Antworten mit Zitat

Hi!
Ich hatte da eine gaaanz verwegene Idee Cool , die mich dann auch irgendwie nicht mehr losgelassen hat. Du wirst sehen, was ich meine…

1. Füge dem /Volumes/-Ordner eine Ordneraktion hinzu, bei Hinzufügen eines Items (etwas wurde gemountet) wird dessen Info in eine Liste geschrieben.
2. Bei Entfernen eines Items (etwas wurde dismountet) wird geschaut, ob es sich um deine Backup-Platte handelt.
3. Wenn ja, schlage Alarm und frage, ob nicht doch ein Bckup gemacht werden soll.
4. Wenn ein Backup gemacht werden soll, mounte mit Hilfe der unter 1 geholten Informationen die Platte wieder, führe das Backup durch und wirf die Platte dann raus.

Bis aufs Backup machen ist schon alles fertig Very Happy Very Happy
-- allMountedItems:
-- bei Mounten eines Volumes wird der Pfad hier hineingeschrieben
-- bei Dismounten wird geschaut, welches Volume danach fehlt
property allMountedItems : {}
property allMountedDiskIdentifiers : {}

property theBackUpDisk : "/Volumes/Panther HD/"

on removing folder items from this_folder after losing removed_items
   set thisPOSIXFolder to POSIX path of this_folder
   if thisPOSIXFolder = "/Volumes/" then
      try
         copy allMountedItems to oldVolumes
         copy allMountedDiskIdentifiers to oldIdentifiers
         updateVolumes()
         repeat with theFormerlyMountedItem in oldVolumes
            if allMountedItems does not contain theFormerlyMountedItem then
               -- theFormerlyMountedItem is gone Sad
               --display dialog (theFormerlyMountedItem & " was dismounted!") as string
               if (theFormerlyMountedItem as string) is equal to theBackUpDisk then
                  set buttonAnswer to button returned of (display dialog "Achtung!" & return & theBackUpDisk & return & "wurde entfernt!" buttons {"Egal", "Backup"} default button 2)
                  if buttonAnswer = "Backup" then
                     -- Festplatte bzw. Volume remounten
                     do shell script "diskutil mount " & getIdentifier(oldVolumes, oldIdentifiers, theFormerlyMountedItem as string)
                     
                     -- BACKUP machen...
                     -- hier ist dein Anteil gefragt!
                     
                     -- Festplatte wieder entfernen
                     do shell script "diskutil unmount " & quoted form of (theFormerlyMountedItem as string)
                  end if
               end if
            end if
         end repeat
      on error errstr
         display dialog errstr
      end try
   end if
   updateVolumes()
end removing folder items from

on adding folder items to this_folder after receiving added_items
   set thisPOSIXFolder to POSIX path of this_folder
   if thisPOSIXFolder = "/Volumes/" then
      try
         -- something was mounted
         repeat with aNewItem in added_items
            set newAddedPOSIXPath to POSIX path of aNewItem
            if allMountedItems does not contain newAddedPOSIXPath then
               --display dialog newAddedPOSIXPath & " was mounted!"
            end if
         end repeat
      on error errstr
         --display dialog errstr
      end try
   end if
   updateVolumes()
end adding folder items to

on getIdentifier(list1, list2, searchItem)
   repeat with i from 1 to count list1
      if (item i of list1 as string) = searchItem as string then
         return (item i of list2) as string
      end if
   end repeat
   return ""
end getIdentifier

on updateVolumes()
   set allMountedItems to {}
   set AppleScript's text item delimiters to return
   set allMountedItems to text items of (do shell script "ls -Lp /Volumes/")
   set AppleScript's text item delimiters to ""
   repeat with i from 1 to count allMountedItems
      set item i of allMountedItems to ("/Volumes/" & item i of allMountedItems) as string
   end repeat
   updateDiskIdentifiers()
end updateVolumes

on updateDiskIdentifiers()
   set allMountedDiskIdentifiers to {}
   repeat with i from 1 to count allMountedItems
      try
         -- get the identifier like "disk0s3"
         set shellScript to "diskutil info " & quoted form of (item i of allMountedItems) & " | grep Identifier"
         set diskIdentifier to last word of (do shell script shellScript)
         if diskIdentifier = "Identifier" then
            set end of allMountedDiskIdentifiers to ""
         else
            set end of allMountedDiskIdentifiers to diskIdentifier
         end if
      on error
         set end of allMountedDiskIdentifiers to ""
      end try
   end repeat
end updateDiskIdentifiers


An den /Volumes/-Ordner kommst du heran, wenn du im Finder unter Gehe zu das Menü Gehe zum Ordner… anwählst. Da als Pfad dann /Volumes/ eintragen. Dann kannst du die Ordneraktion anhängen.

Viel Spaß Smile

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1529
Wohnort: Olten-CH

BeitragVerfasst am: 15.08.2006 - 21:21    Titel: Antworten mit Zitat

ShooTerKo hat Folgendes geschrieben:
Dann kannst du die Ordneraktion anhängen.
super Idee, kann man nicht gleich den Desktop-Folder be-Ordner-Aktionen? darauf sind ja alle Volumes gemountet.
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 15.08.2006 - 23:00    Titel: Antworten mit Zitat

Cool ShooTerCoole Lösung Exclamation --> Das musste mal raus!!

Da haste dir ein Hosenband-Orden verdient.
Ich liebe solche Geistesblitze.
(Am liebsten allerdings, wenn ich sie selbst habe Wink )
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1955
Wohnort: Deiningen

BeitragVerfasst am: 15.08.2006 - 23:49    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:
super Idee, kann man nicht gleich den Desktop-Folder be-Ordner-Aktionen? darauf sind ja alle Volumes gemountet.


Schon mal einen Blick in den Desktop-Folder geworfen und irgend ein Volume dort gefunden?
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 16.08.2006 - 09:32    Titel: Antworten mit Zitat

Danke für die Lorbeeren Very Happy Very Happy
Übrigens: Es reicht für die Anwendung folgender "on adding folder items"-Handler:

on adding folder items to this_folder after receiving added_items
   updateVolumes()
end adding folder items to


War ne witzige Idee, da kommt man fast in einen Rausch, und es wird mit jedem Schritt besser Surprised . So macht Scripten doch echt Spaß!

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 16.08.2006 - 12:14    Titel: Antworten mit Zitat

ShooTerKo
ich musste mich erst einmal von der tiefen Ohnmacht erholen, in die ich gefallen bin als ich dein script sah.... Shocked

In Wahrheit habe ich erst heute morgen wieder am Rechner gesessen, wollte dir aber jetzt meine Bewunderung nicht vorenthalten. Zuerst habe ich darüber nachgegrübelt, ob das überhaupt mein Problem löst, weil sich das Skript ja nicht *vor* dem Abmelden der externen Platte einklinkt.

Aber bei genauerer Betrachtung komme ich immer mehr zu der Überzeugung, dass es so sogar noch besser ist, weil es einerseits den Fehler vermeiden hilft und mich gleichzeitig erzieht, selber daran zu denken das Backup zu machen bevor ich nach Hause gehe.

Also, ganz viel Karma und beide Daumen ganz oben, super Idee!!! Jetzt werd ich erst mal testen, wie es im Alltag funktioniert.

Prion

PS: Kennt hier noch einer die Sesamstraße und zwar die Folge, in der ein Songwriter mit wildem Haar am Klavier sitzt und von Kermit interviewt wird, während er versucht ein superdämliches Lied (Mary hat ein rotes Rad) mit anständig klingeden Reimen zu kompieren? Jedesmal, wenn ihm keiner einfällt, schaut er die Beethoven Büste auf dem Klavier an, ruft "Ludwig, ich schaff es NIIEE!" und wirft seinen Kopf auf die Tastatur. So ähnlich fühl ich mich grade. Wird wohl noch ein bisschen dauern, bis ich hier Beethoven Neunte im Skripteditor zusammenkomponiert habe.... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 16.08.2006 - 16:39    Titel: Antworten mit Zitat

X-)
Also nicht mal dafür reicht es Embarassed (schäm)

Wenn ich Dich richtig verstehe, soll ich das Skript als Ordneraktion an den Volumes Ordner dranhängen. Das habe ich getan und sicherheitshalber mich neu eingeloggt. Es bleibt aber dabei, dass dann beim Abmelden der Platte nichts passiert, bis auf Folgendes:
Nach Abmelden der externen Platte dauert es ungefähr 2 Sekunden, dann verschwindet der Fokus vom Finder (dh er wird blass), das hält etwa 3 Sekunden an, dann ist er wieder aktiviert.

Ich habe sicher etwas vergessen zu machen, aber was?
Andere Idee: Ich bin nicht als Admin angemeldet, ist das erforderlich?

Danke soweit
Prion
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 16.08.2006 - 17:44    Titel: Antworten mit Zitat

ShooTerKo hat Folgendes geschrieben:
Danke für die Lorbeeren Very Happy Very Happy
Übrigens: Es reicht für die Anwendung folgender "on adding folder items"-Handler:

on adding folder items to this_folder after receiving added_items
   updateVolumes()
end adding folder items to


War ne witzige Idee, da kommt man fast in einen Rausch, und es wird mit jedem Schritt besser Surprised . So macht Scripten doch echt Spaß!

CU
ShooTerKo


Sag mir doch bitte, muss ich in diesem Skript die Namen noch anpassen und dann: Wohin damit?

Ich hoffe ich gehe dir nicht zu sehr auf die Nerven, wie geesagt, ich bin noch am üben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 16.08.2006 - 17:55    Titel: Antworten mit Zitat

Null Problemo Smile
Einfach bei
property theBackUpDisk : "/Volumes/Panther HD/"
deinen HD-Namen eintragen, meine Testfestplatte hieß Panther HD. Damit sollte klar sein, wo dein Plattenname hin muss Wink

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 16.08.2006 - 18:17    Titel: Antworten mit Zitat

Mja, das habe ich mir schon gedacht und auch ein bisschen rumexperimentiert. Allerdings ist das nicht so einfach, denn offiziell heißt meine Platte "Esel", keine dummen Sprüche bitte Wink die hießen bei mir immer so
Inoffiziell kennt OS X aber auch "Esel 1" und "Esel 2", steht so im Volumes Ordner und auch der Pfad von Dokumenten, die ich dahin ablege enthält diese nachgestellte Zahl.
Im Finder allerdings heißt die Platte immer noch "Esel", egal ob unter "Informationen" abrufbar oder der Name, der rechts neben dem gemounteten Volume Icon auftaucht....
Welchen muss ich nehmen und weshalb ist das so?
Nebenbei, wie ändere ich das wieder?

Prion, der noch viel lernen muss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Prion
•->
•->


Anmeldedatum: 29.06.2006
Beiträge: 18

BeitragVerfasst am: 17.08.2006 - 13:18    Titel: Antworten mit Zitat

Prion, der in der Zwischenzeit viel gelernt hat

sagt

Ich weiß jetzt woran es lag, dass es nicht funktioniert hat. Mein Rechner hat sich ein paarmal mit angehängter Platte festgefressen, und nach dem erzwungenen Neustart wurden die alten mountpoints nicht gelöscht. Die blockierten dann den alten Namen des Volumes, so dass derFinder zwar weiterhin behauptet, sie hieße "Esel" aber unter der Haube redet OS X sie nun mit "Esel 1" an. Da sie als "Esel 1" aber nun nicht identisch war mit "Esel" (und so habe ich siie in deinem Skript eingetragen), hat sich natürlich nichts getan, wenn ich die Platte abgemeldet habe.

Jetzt habe ich die alten mountpoints gelöscht, die Platte heißt wiieder wie ich ursprünglich wolllte einfach "Esel" und wenn ich mich jetzt abmelde, kommt die Warnung "Ey, Platte weg, wolltest du nicht noch ein Backup machen, Du Schussel?". Und mit das Beste: wenn ich dann das Backup mache und dann die Platte NOCHMAL abmelde - dann kommt die Warnung nicht mehr. Ich habe, seit es jetzt funktioniert, immer mal wieder die Platte angesteckt, abgemeldet, die aufpoppende Warnmeldung bewundert, Knöpfe gedrückt und mich einfach nur gefreut.

Das ist absolute Oberklasse, ShooTerKo, du bist der Allergrößte!!! Very Happy Shocked Cool

Vielen Dank

Prion (der immer mehr Geschmack an Applescript und diesem Forum findet)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 17.08.2006 - 23:19    Titel: Antworten mit Zitat

das wäre sonst vielleicht auch noch was gewesen:
http://www.azarhi.com/Projects/DSW/

Confused jetzt kann ich's ja sagen: ich hab mir übrigens a little bit einen abgebrochen, die ordneraktion an den "volumes"-ordner zu hängen. ohne drag-n-drop wär man da ja ganz schön aufgeschmissen, da man ihn im öffnen-dialog u. über den finder normal ja nicht zu sehen bekommt. Rolling Eyes
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter