[GastForen Programmierung/Entwicklung AppleScript ID CS6: enable redraw

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

ID CS6: enable redraw

Goar
Beiträge gesamt: 371

18. Aug 2014, 18:30
Beitrag # 1 von 8
Bewertung:
(3393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skripter,

ich hoffte, ein umfangreiches Korrekturskript beschleunigen zu können, indem ich die Bildschirmauffrischung vorübergehend deaktiviere

Code
set enable redraw of script preferences to false 


Aber auch wenn ich das Skript aus dem Skript-Menü heraus starte, springt und zappelt es im Fenster herum.

Funktioniert dieser Befehl nicht?

@Hans

Im Beitrag http://www.hilfdirselbst.ch/...i?post=421824#421824
hast du vor der Ausführung das redraw eingeschaltet; hatte es damit in dem Skript eine besondere Bewandnis?

Grüße von
Goar
---
> iMac 27" 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <
> iMac 27" 3,1 GHz Intel 6 Core i5, 16 GB, MacOS 10.15.5, QXP 2019/2020 <
X

ID CS6: enable redraw

Hans Haesler
  
Beiträge gesamt: 5797

18. Aug 2014, 20:02
Beitrag # 2 von 8
Beitrag ID: #531169
Bewertung:
(3349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

nun ... mit JavaScript habe ich das Ausschalten des Bildschirmaufbaus erfolgreich angewendet.
Je nach den auszuführenden Aktionen wird die Ausführung mehr oder weniger deutlich beschleunigt.

Weshalb es bei Dir nicht klappen will, kann ohne das Script gesehen zu haben nicht beurteilt werden.

Das Einschalten im zitierten Script dient einzig und allein zum Sicherstellen, dass der Fortschrittsbalken auch angezeigt wird.
Wenn 'redraw' ausgeschaltet ist, dann wird die Anzeige eines Fortschrittsbalkens unterdrückt.

Gruss, Hans


als Antwort auf: [#531164]

ID CS6: enable redraw

Goar
Beiträge gesamt: 371

19. Aug 2014, 10:10
Beitrag # 3 von 8
Beitrag ID: #531178
Bewertung:
(3290 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

reicht die verallgemeinerte Form?
Code
activate -- sorgt dafür, dass das Skript nach vorne kommt; kann lange Skripts etwas beschleunigen 

tell application "Adobe InDesign CS6"
-- Test, ob ein Dokument offen ist
-- Zuweisung set curStory …

-- Bildschirm soll erst nach Ablauf des Skripts neu aufgebaut werden
set enable redraw of script preferences to false

-- Alle im Text verankerten Bilder sind etwas schmaler als die drei Textspalten
-- Sie werden an die Spaltenbreite angepasst

-- Nachdem die Suchen-Ersetzen-Vorgaben eingestellt wurden,
-- folgen mehr als hundert Change-greps
-- Die Vorgaben werden zurückgesetzt

set enable redraw of script preferences to true

end tell

Zur Not könnte das Skript einen weißen Bereich extrem vergrößern, dann würde sich am Bildschirm auch nichts bewegen, solange das Skript läuft.

Freundliche Grüße
Goar
---
> iMac 27" 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <
> iMac 27" 3,1 GHz Intel 6 Core i5, 16 GB, MacOS 10.15.5, QXP 2019/2020 <


als Antwort auf: [#531169]

ID CS6: enable redraw

Hans Haesler
  
Beiträge gesamt: 5797

19. Aug 2014, 12:33
Beitrag # 4 von 8
Beitrag ID: #531189
Bewertung:
(3266 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

wie gesagt, hatte ich das Abstellen der Bildschirmauffrischung in JavaScripts erfolgreich eingesetzt.
Zum Beispiel in FarbSkala, erhältlich hier http://www.fachhefte.ch / Links "JavaScripts", "Mac OS X deutsch", "InDesign CS2" bis "InDesign CS5".

Eine sehr kurze Fassung des Scripts zeigt auf, dass es mit AppleScript ebenfalls funktioniert.
Bedingung: Das Script muss mit Doppelklick auf seinen Namen im Bedienfeld "Skripte" gestartet werden.

JavaScript
Code
var curDoc = app.documents[0]; 

app.scriptPreferences.enableRedraw = false;

var y1 = 10;
var x1 = 10;
var fH = 10;
var fW = 10;
var fT = 1;

for (var n=0; n<10; n++) {
for (var m=0; m<10; m++) {
curDoc.rectangles.add({geometricBounds:[y1,x1,y1+fH,x1+fW],
fillColor:"Magenta", fillTint:fT, strokeColor:"None"});
x1 += fW+1;
fT += 1;
}
y1 += fH+1;
x1 = 10;
}

app.scriptPreferences.enableRedraw = true;

AppleScript:
Code
tell application "Adobe InDesign CS5" 

set enable redraw of script preferences to false

set y1 to 10
set x1 to 10
set fH to 10
set fW to 10
set fT to 1

tell document 1
repeat with n from 1 to 10
repeat with m from 1 to 10
make new text frame at beginning with properties ¬
{geometric bounds:{y1, x1, y1 + fH, x1 + fH}, fill color:"Magenta", fill tint:fT, stroke color:"None"}
set x1 to x1 + fW + 1
set fT to fT + 1
end repeat
set y1 to y1 + fH + 1
set x1 to 10
end repeat
end tell

set enable redraw of script preferences to true
end tell

Wie startest Du denn Dein Script? Ab "AppleScript-Editor" scheint die "redraw"-Definition ignoriert zu werden. Und dasselbe gilt für einen Start ab Menü-Leiste (Skriptordner des Benutzers).

Gruss, Hans


als Antwort auf: [#531178]
(Dieser Beitrag wurde von Hans Haesler am 19. Aug 2014, 12:47 geändert)

ID CS6: enable redraw

Goar
Beiträge gesamt: 371

19. Aug 2014, 14:24
Beitrag # 5 von 8
Beitrag ID: #531202
Bewertung:
(3240 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

im InDesign_ScriptingGuide_AS.pdf fand ich zu enable redraw:
Turns screen redraw on or off while a script is running from the Scripts panel.
Daran hatte ich mich gehalten, Skriptstart also mit Doppelklick ins Skripte-Bedienfeld.
Den Anfangsbefehl habe ich nun wie in deinem Beispiel direkt unter tell application gesetzt.

Mit enable redraw false braucht das Skript 23 sec, mit enable redraw true braucht es 24 sec.
In beiden Fällen viel Bewegung auf dem Schirm und die Seiten in der Seitenpalette werden weiß, bis das Skript fertig ist.

Mit einem weißen Fleck auf der Seite (2232% Zoom) und Seitenpalette weg – es tauchen zwei verschiedene Textausschnitte auf, die sich ansonsten aber ruhig verhalten – brauchte es 19 sec.

Schließlich habe ich die JavaScript-Zeilen in mein Script eingebunden …
Code
set redrawTrue to "app.scriptPreferences.enableRedraw = true;" 
set redrawFalse to "app.scriptPreferences.enableRedraw = false;"

tell application "Adobe InDesign CS6"
do script redrawTrue language javascript
-- mach was
do script redrawFalse language javascript
end tell

… wie du es vorgemacht hast:
http://www.hilfdirselbst.ch/...able%20redraw#421824
Aber auch das hat das Skript nicht beschleunigt.

Wenn dir nicht spontan die Hammer-Idee kommt, verwende nicht weiter Zeit darauf.
Ich habe rechts und links vom Weg einiges Interessante aufgelesen und kann mit der Laufzeit des Skripts gut leben.

Vielen Dank, Hans, und Grüße von
Goar
---
> iMac 27" 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <
> iMac 27" 3,1 GHz Intel 6 Core i5, 16 GB, MacOS 10.15.5, QXP 2019/2020 <


als Antwort auf: [#531189]

ID CS6: enable redraw

Hans Haesler
  
Beiträge gesamt: 5797

19. Aug 2014, 14:54
Beitrag # 6 von 8
Beitrag ID: #531205
Bewertung:
(3233 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

dann hast Du ja alles richtig gemacht. :-)

Möglicherweise wird das Auffrischen nicht unterbunden, wenn Bilder im Spiel sind.
Das müsste ich noch prüfen. Aber gleich muss ich weg.

Hammer-Ideen?
– Das Dokument-Fenster manuell ganz klein machen (zusätzlich zum Zoom).
– Den Preflight deaktivieren.
– Das Dokument schliessen, wieder öffnen (aber unsichtbar) und erst anzeigen wenn fertig.

Hilft sehr wahrscheinlich alles nichts.

Gruss, Hans


als Antwort auf: [#531202]

ID CS6: enable redraw

TMA
Beiträge gesamt: 369

20. Aug 2014, 07:43
Beitrag # 7 von 8
Beitrag ID: #531231
Bewertung:
(3180 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier mal eine andere Idee. InDesign mal ganz verbergen:
Code
tell application "System Events" 
set visible of every application process whose name contains "InDes" to false
end tell


Es darf natürlich kein "activate" für InDesign im Script vorkommen.

Evtl. auch mal beim öffnen eines Dokumentes mit "without showing window" testen.

Gruß
TMA


als Antwort auf: [#531205]

ID CS6: enable redraw

Goar
Beiträge gesamt: 371

21. Aug 2014, 17:03
Beitrag # 8 von 8
Beitrag ID: #531299
Bewertung:
(3106 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

danke für den Tipp; die »System Events« rücken in letzter Zeit deutlich ins Geschehen.
Habe so ID gleich zu Anfang des Skripts ausgeblendet und erst direkt vor der Schlussmeldung wieder eingeblendet.
Laufzeit 19 sec entspricht dem besten Ergebnis, das ich bisher mit den anderen Möglichkeiten erreicht habe.
Dann habe ich das Skript aus dem Skript-Menü gestartet: Da brauchte es nur 14 sec.
Dabei werde ich’s lassen.

Dokument öffnen mit »without showing window«, lasse ich mal bleiben, da eine Textkette angeklickt werden muss; das möchte ich nicht im Blindflug per Skript machen.

Herzliche Grüße
Goar
---
> iMac 27" 3,2 GHz Intel Core i5, 8 GB, MacOS 10.11.6, QXP 2018, ID CS6 <
> iMac 27" 3,1 GHz Intel 6 Core i5, 16 GB, MacOS 10.15.5, QXP 2019/2020 <


als Antwort auf: [#531231]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AP6

Neuste Foreneinträge


InDesign 2021 – Suchen/Ersetzen: Farbe

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Langsamer MacMini

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Balken hinter einen Bildteil

Geteiltes Album

Verschiedene Netzwerke Handeln

Nicht "Silben über Spalten hinweg trennen" (CC 2018/ CC 2021)

Exel ohne leeres Tabellenblatt starten

Wordpress - Video per CSS mit Datenschutzerklrung DSGVO erstellen. Wie geht es?
medienjobs