[AppleScript] Programm starten bei Nutzung eines bestimmten Ordners

jack_pott

Rheinischer Krummstiel
Registriert
15.12.07
Beiträge
379
Salüü,

ich hab da ein kleines Problem: Ich hab keine Ahnung von AppleScript. Das ist insofern ein Problem, dass ich es gerne hätte, dass ein bestimmtes Programm aufgerufen wird, sobald eine Aktivität innerhalb eines bestimmten Ordners stattfindet - sei es Öffnen, Datei hineinschieben oder Datei löschen/umbenennen etc. Kurz: Ich mach was in Ordner X und Programm Y wird sofort aufgerufen.

Für Lösungsansätze bin ich sehr dankbar. Insbesondere wenn sie für einen AppleScript-Newbie wie mich verständlich formuliert sind :)

Besten Dank schonmal,
- Valentin.
 

jack_pott

Rheinischer Krummstiel
Registriert
15.12.07
Beiträge
379
Danke.

Das starten des Programms funktioniert schon perfekt, allerdings beendet es nicht, wenn ich den Ordner schließe.

Code:
on adding folder items to this_folder after receiving added_items
	try
		run application "[I]APP[/I]"
	end try
end adding folder items to

on opening folder this_folder
	try
		run application "[I]APP[/I]"
	end try
end opening folder

on closing folder window for this_folder
	tell application "[I]APP[/I]"
		quit
	end tell
end closing folder window for
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Überprüfe das mit einem "display alert".
Vielleicht wird die Methode nicht aufgerufen.

Viele Grüße
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Ja, wichtige Info. Die kannst Du nicht ansprechen.
Da müßtest Du Dir die Prozesse geben lassen und beenden.

Viele Grüße
 

jack_pott

Rheinischer Krummstiel
Registriert
15.12.07
Beiträge
379
Kann ich mir die beim Programmstart irgendwie zurückgeben und speichern lassen?
Oder muss ich da tatsächlich irgendwie die Prozesse mit 'ps ax | grep' ermitteln?
Andere Vorgehensweisen (du lässt dir ja alles ganz schön aus der Nase ziehen ;) )
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Auswendig weiß ich das auch nicht alles.

Schau Dir mal an:

Code:
tell application "System Events"
	every process
end tell

Damit solltest Du Zugriff bekommen.

Viele Grüße
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.358
Hallo jack_pott! :)

Ich gebe hier meinen Senf eigentlich nur deshalb dazu, um anzumerken, dass es so nicht stimmt, was Little Pixel geschrieben hat.
Ich kann alle meine Anwendungen, welche in der Menüleiste auftauchen und im Hintergrund laufen ansprechen und beenden.

Warum das in deinem Fall nicht geht, kann mehrere Gründe haben. Aber da Du ja auch nicht schreibst, um welches "APP" es sich handelt (von wegen aus der Nase ziehen ;) ), ist es mühselig, diese alle zu erläutern. Kann ja sein, dass es keiner kennt ... doch dann kann man sich immer noch überlegen, ob man allgemeinere Hinweise geben möchte.
Mit Little Pixels Hinweis auf die Prozesse wirst Du aber mit Sicherheit weiterkommen, wobei folgendes Skript die Sache etwas mehr eingrenzt:

tell application "System Events"
name of every application process whose background only is true
end tell
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Hallo,

Ich kann alle meine Anwendungen, welche in der Menüleiste auftauchen und im Hintergrund laufen ansprechen und beenden.

Nein, da haben wir beide so nicht recht ;)
Nicht jede/r TrayBar Applikation/Proszess ist erreichbar mit "tell application xy"
Wir differenzieren nicht zwischen Prozess und Anwendung usw. Deshalb liegen wir beide mit der "global" Aussage nicht ganz richtig.

Aber wie bereits erwähnt, über die Prozesse lässt sich alles erreichen.
Wünschenswert ist, dass man den korrekt beendet und nicht killt.

Viele Grüße
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.358

Mitglied 26876

Gast
Also mich interessiert das Thema auch sehr, aber was genau hast Du denn vor??

Also ich verstehe Ordneraktionen auch nicht *peinlich*. Evtl. hat wer mit Google eine "Beschreibung" die mir es erklären würde, wenn ja dann bitte posten^^


Wäre für mich auch sehr interessant diese Geschichte hier..
 

jack_pott

Rheinischer Krummstiel
Registriert
15.12.07
Beiträge
379
Die APP ist Dropbox. Kurzbeschreibung (frei Hand): Dropbox stellt einen Ordner zur Verfügung, der automatisch mit einem Ordner online (auf einem Server vom Dropbox-Provider) synchronisiert wird. Das ermögtlich zB einen gemeinsamen Ordner mehrerer Rechner - privat und auf der Arbeit wäre eine Möglichkeit.

Ich bin kein Freund von ungenutzen Hintergrundprozessen, daher wollte ich Dropbox nur starten lassen, wenn ich den Dropbox-Ordner auch wirklich nutze. Also öffne bzw etwas reinschiebe. Das mit dem Öffnen klappt ja - wie erwähnt - so wie es soll. Nur soll Dropbox auch beim Schließen beendet werden. Allerdings verhält es sich da nicht nur mit AppleScript (scheinbar) etwas komplizierter, sondern auch mit der Logik. Denn das App soll ja nur beendet werden, wenn Dropbox (falls es synchronisieren sollte) auch fertig mit allen Arbeiten ist. Ich fürchte, dass die einfachste Lösung eine AppleScript-Unterstützung von Dropbox voraussetzt...

Trotzdem Danke für eure Hilfen. AppleScript ist scheinbar typisch Apple und ziemlich einfach zu lernen :)
Schönen Abend noch.
 
Zuletzt bearbeitet:

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.358
Hi jack_pott! :)

Ok, es geht also um Dropbox.
Soweit ich weiß, schlummert das mit 0,0 % CPU, wenn inaktiv ...
Möglich wäre also ein Script, welches in einer Schleife die CPU usage von Dropbox solange abfragt, bis 0 erreicht ist und dann den Prozess beendet.

Falls AS doch nicht so einfach sein sollte, helfe ich dir gerne weiter :)
 

jack_pott

Rheinischer Krummstiel
Registriert
15.12.07
Beiträge
379
Das wäre natürlich ne Möglichkeit. Sobald ich mal wieder ein bisschen Zeit dafür habe, werd ich das mal ausprobieren :)

Gute Nacht,
— Valentin.