[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt MacOS Überwachungsscript

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

MacOS Überwachungsscript

WernerPerplies
Beiträge gesamt: 2762

1. Okt 2018, 09:52
Beitrag # 1 von 7
Bewertung:
(2853 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

ich habe ein Skript geschrieben, dass einige Verzeichnisse mit einem OnIdleTask-Eventhandler im 5-Sekunden-Takt überwacht.

Das funktioniert auch für einige Minuten recht gut, dann entscheidet sich InDesign dazu, die Arbeit einzustellen.

Sobald ich dann auf dem Mac InDesign mit der Maus anklicke, geht es für einige Zeit weiter.

Ich habe mir deshalb gedacht, kein Problem, richte eine Ordneraktion ein, die InDesign aktiviert, sobald eine neue Datei eintrifft.

Auch das funktioniert soweit, wie geplant, wenn InDesign vorher nicht aktiviert war, schlägt aber fehl, wenn InDesign bereits aktiv ist.

Die Aktivierung erfolgt per AppleScript:
Code
tell application CC 2018 
activate
end tell


So, jetzt kommt meine eigentliche Frage:
Wie komme ich einen Wechsel zwischen aktiv und inaktiv hin, entuell sogar in festen Zeitabständen?

Ich bedanke mich schon mal im Voraus für weiterführende Tipps.
X

MacOS Überwachungsscript

Dirk Becker
Beiträge gesamt: 193

1. Okt 2018, 11:07
Beitrag # 2 von 7
Beitrag ID: #566604
Bewertung:
(2837 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielleicht hilft dies hier weiter?

https://developer.apple.com/...cles/MacOSX10_9.html

Die Bundle ID für InDesign wäre dabei "com.adobe.indesign".

Man kann sie auch bei AppleScript verwenden, etwa:
Code
tell application id "com.adobe.indesign" to activate 


Btw, die folgende Einstellung hilft bei mir auch gegen das Stotter-Problem von ESTK.
Code
defaults write "com.adobe.estoolkit-4.0" NSAppSleepDisabled -bool YES 


Grüße,
Dirk


als Antwort auf: [#566601]
(Dieser Beitrag wurde von Dirk Becker am 1. Okt 2018, 11:09 geändert)

MacOS Überwachungsscript

WernerPerplies
Beiträge gesamt: 2762

1. Okt 2018, 11:37
Beitrag # 3 von 7
Beitrag ID: #566605
Bewertung:
(2831 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Dirk,

zuerst einmal Danke für Deine Antwort, auch wenn ich im Moment immer noch ratlos bin.

Auch wenn das etwas undankbar klingt, der Link überfordert mich im Moment noch total.

Code
tell application id "com.adobe.indesign" to activate 


ist wohl eine Alternative zu
Code
tell application CC 2018  
activate
end tell

oder?

Zitat Btw, die folgende Einstellung hilft bei mir auch gegen das Stotter-Problem von ESTK.
Code
defaults write "com.adobe.estoolkit-4.0" NSAppSleepDisabled -bool YES 



Unter Stotterproblem verstehst Du das Einschlafen des Aufrufs vom OnIdleTask-Event?

Wie und wo muss man den Befehl eingeben, AppleScripts-Editor mag das Statement nicht.

Als Alternative habe ich mir überlegt, den ganzen (ziemlich umfangreichen) Eventhandler als externes Script auszulagern und per Ordneraktion aufzurufen.

Wenn das funktioniert, könnte ich unter Windows einen ähnlichen Weg wählen, das hätte natürlich seinen Reiz, wenn auch mit riesigem Testaufwand verbunden.

Wäre das eine Option? - Obwohl allein der Gedanke schüttelt mich! :-)

Ich bin jetzt schon Wochen an diesem Projekt, und alles funktioniert, - für wenige Minuten! :-)


als Antwort auf: [#566604]

MacOS Überwachungsscript

Dirk Becker
Beiträge gesamt: 193

1. Okt 2018, 12:12
Beitrag # 4 von 7
Beitrag ID: #566606
Bewertung:
(2819 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry, ich habe zu wenig Kontext gegeben.

Das konkrete Problem mit einfrierendem InDesign habe ich noch nicht erlebt, nur etwas ähnliches im Zusammenspiel mit ESTK. Schuld ist in dem Fall wohl das Betriebssystem-Feature "App Nap".

Für ESTK und InDesign habe ich das bei mir mit dem entsprechenden Befehl gelöst, ob es bei Deinem Ordner-Script hilft weiss ich nicht.

Der Befehl "defaults" ist ein Betriebssystem-Befehl, also im Terminal auszuführen. Er dient zum Bearbeiten von Voreinstellungen im plist Format. Die Defaults sind damit Speicherbereiche für Konfiguration - sowohl von Programmen als auch dem Betriebssystem, so ähnlich wie die Registry.
https://ss64.com/osx/defaults.html

Konkret wäre für InDesign auszuführen:
Code
defaults write "com.adobe.indesign" NSAppSleepDisabled -bool YES 


Grüße,
Dirk


als Antwort auf: [#566605]

MacOS Überwachungsscript

Thomas Richard
Beiträge gesamt: 19334

1. Okt 2018, 12:21
Beitrag # 5 von 7
Beitrag ID: #566607
Bewertung:
(2814 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bin ja kein Programmierer, weiß nur von den Tasks die so auf meinen Servern laufen, dass die nicht performant möglich wären, wenn die per Ordnerüberwachung liefen. Sowohl Helios als auch OS X machen sowas doch seit geraumer Zeit per Eventhandler, die von sich aus dem wartenden Prozess ein GO geben, wenn in ihrem Wirkungskreis etwas geschieht.

Beispiel TimeMachine Backup: Zwischen den Backups wird in der Spottleid Datenbank registriert, was sich seit dem letzten BU am Dateisystem getan hat, und zwar aktiv von den Prozessen, die die Dateien befuttelt haben.

Alle relevanten Eingriffe werden quasi in eine ToDo Liste aufgenommen, die dann beim nächsten Sicherungszyklus abgearbeitet wird. Und das eben ohne, dass da irgendein Prozess dauernd in irgendwelche Verzeichnisse schaut, oder zum Zeitpunkt X das komplette Dateisystem mit dem vorherigen BU-Stand abzugleichen wäre.


als Antwort auf: [#566606]

MacOS Überwachungsscript

WernerPerplies
Beiträge gesamt: 2762

1. Okt 2018, 12:37
Beitrag # 6 von 7
Beitrag ID: #566608
Bewertung:
(2810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

ich rede hier die ganze Zeit von Eventhandlern. :-)

onIdleTask sollte in InDesign aufgerufen werden, wenn InDesign nichts besseres zu tun hat, in meinem Fall die optimale Lösung.

Leider wird dieser Eventhndler bei längerer Untätigkeit nicht mehr aufgerufen, aus meiner Sicht ein Bug.

Eine Ordneraktion auf dem Mac ist ein Eventhandler, der eben bei einer Ordneraktion aufgerufen wird.

Unter Windows nennt sich das Filewatcher.


als Antwort auf: [#566607]

MacOS Überwachungsscript

WernerPerplies
Beiträge gesamt: 2762

8. Okt 2018, 19:27
Beitrag # 7 von 7
Beitrag ID: #566752
Bewertung:
(2623 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dirk,

iregendwie hatte ich leider Deine zweite Antwort übersehen, ich werde dass demnächst mal testen.

Zwischenzeitlich habe ich ein Lösung gefunden, die zwar von "Hinten durch den Kopf" und ziemlich häßlich ist, aber die gewünschte Funktionalität herstellt.

Zu Erinnerung:

Der "OnIdleTask-Eventhandler" schläft nach einiger Zeit ein und muss wiedererweckt werden.

Die Wiedererweckung funktioniert manuell durch einen beliebigen Mouseclick außerhalb von InDesign.

Ich löse das jetzt bis zu einer besseren Lösung durch diese Ordneraktion für den zu überwachenden Ordner:

Code
property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer. 

on adding folder items to this_folder after receiving added_items
try
tell application "Finder"
activate
end tell
tell application "Adobe InDesign CC 2018"
activate
end tell
tell application "Finder"
activate
display dialog "PdfServer erhŠlt neue Dateien" giving up after 1
end tell
tell application "Adobe InDesign CC 2018"
activate
end tell
end try
end adding folder items to



als Antwort auf: [#566606]
X