Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScript

Guten Tag, allerseits,

nachdem ich nun die Wirren eines Abonnements der mailingliste erfolgreich (?) hinter mich gebracht habe, schicke ich sicherheitshalber noch einmal meine Anfrage. Sollte sie doch schon angekommen sein, bitte ich um Nachsicht.

ich habe folgendes Problem, wenn ich unter RagTime 6.5 (Leopard 10.5.8 und MacBook Pro 15") per AppleScript den Druckendialog steuern will, in dem ich die erste und letzte Seite vorgeben will:

tell application "RagTime 6.5"
activate
print layout "Oberstufenheft_Unterricht_Ausdruck" of document 1 with properties {starting page:1, ending page:2} with print dialog
end tell

Nach Ausführung des Programms bleibt das Dialogfenster geöffnet stehen, doch die Werte in den Erste- und Letzte-Seite-Feldern ändern sich nicht. Die Default-Einstellung 'Alle Seiten' bleibt unverändert. Es scheint, dass RagTime die properties nicht mehr mitbekommt und meint, der Anwender soll auch mal was tun.

Das prinzipiell identische Script funktioniert mit TextEdit einwandfrei:

tell application "TextEdit"
activate
print document 1 with properties {starting page:1, ending page:2} with print dialog
end tell

Für eine Hilfe bzw. Workaround oder ggf. einen Hinweis, dass dies ein momentan reproduzierbares Problem von RagTime ist  wäre ich dankbar. Ich hoffe, dass ich nicht auf TextEdit umsteigen muss...;-)

Mit freundlichen Grüßen
- Jörg Bornemann (Bruder vom Lutz, der auch nicht weiter weiß...;-))

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9713 On 12 August, 2010 20:07 djschulz said,

Mit Gui - Scripting:

Folgendes Script im Skripteditor als Programm absichern, zum Beispiel als Drucken.app im Ordner Scripts in der Library auf oberster Ebene:

on run
set ersteSeite to 1 as text --Druckbeginn bei Seite
set letzteSeite to 2 as text -- Druckende bei Seite
set kopien to 3 as text -- Anzahl Kopien festlegen
activate window 1 of application "RagTime 6"
tell application "System Events"
tell application process "RagTime"
click menu item "Drucken…" of menu 1 of menu bar item "Ablage" of menu bar 1
repeat until exists window "Drucken"
end repeat
activate window "Drucken"
click radio button "Von:" of radio group 1 of window "Drucken"
set value of text field 2 of window "Drucken" to ersteSeite
set value of text field 1 of window "Drucken" to letzteSeite
set value of text field 3 of window "Drucken" to kopien
click button "Vorschau" of window "Drucken"
-- oder, wenn sofort gedruckt werden soll:
--click button "Drucken" of window "Drucken"
end if
end tell
end tell
end run

Dann in RagTime folgendes Script anlegen welches per Shell obiges Scriptprogramm startet:

-- Script "ScriptName" muss in folgendem Ordner liegen:
-- /Library/Scripts/
-- Script muss als Programm mit der Endung ".app" dort abgespeichert sein:
set scriptName to "Drucken.app"

set thePath to (POSIX path of (path to library folder from local domain as text)) & "Scripts/" & scriptName & "/Contents/MacOS/applet"

-- scriptName über die Shell aufrufen und stdout und stderr in dev/null umleiten damit das Terminal nicht aufgeht:
set x to do shell script (quoted form of thePath) & "> /dev/null 2> /dev/null &"

Gruß,
Detlef

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9714 On 13 August, 2010 12:19 Lutz-Dieter Bornemann said,

Hallo Detlev,

vielen herzlichen Dank auch von meiner Seite aus
für Dein GUI-Script zum Drucken.

Ich verstehe jedoch nicht,
warum der der Aufruf von RT aus
nicht auch auf folgende Weise funktioniert:

tell application "Finder"
activate
open file "D:Users:ldborn:Library:Scripts:Drucken.app"
end tell

D = Name meiner Festplatte
ldborn = Name meines Benutzeraccounts

Zugegeben, seit OS 10.6 habe ich Probleme damit,
weiß aber nicht warum.

So taucht manchmal - aber nicht immer - die Fehlermeldung auf:
"Die Verbindung ist ungültig."

So arbeitet mein Skript "Verlinken von Textstellen.app"
(auf RT-Epertenseite hinterlegt)
nur dann einwandfrei, wenn ich es vom AppleScript-Editor aus aufrufe.

Vielleicht hast Du eine Idee.

Gruß
Lutz

Am 12.08.2010 um 21:11 schrieb djschulz:

>
>
> Dann in RagTime folgendes Script anlegen welches per Shell obiges Scriptprogramm startet:
>
> -- Script "ScriptName" muss in folgendem Ordner liegen:
> -- /Library/Scripts/
> -- Script muss als Programm mit der Endung ".app" dort abgespeichert sein:
> set scriptName to "Drucken.app"
>
> set thePath to (POSIX path of (path to library folder from local domain as text)) & "Scripts/" & scriptName & "/Contents/MacOS/applet"
>
> -- scriptName über die Shell aufrufen und stdout und stderr in dev/null umleiten damit das Terminal nicht aufgeht:
> set x to do shell script (quoted form of thePath) & "> /dev/null 2> /dev/null &"
>
> Gruß,
> Detlef
>
>
>

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9715 On 13 August, 2010 12:53 djschulz said,

- Ich verstehe jedoch nicht,
- warum der der Aufruf von RT aus
- nicht auch auf folgende Weise funktioniert:
-
- tell application "Finder"
- activate
- open file "D:Users:ldborn:Library:Scripts:Drucken.app"
- end tell
-
- D = Name meiner Festplatte
- ldborn = Name meines Benutzeraccounts
-
- Zugegeben, seit OS 10.6 habe ich Probleme damit,
- weiß aber nicht warum.
-
- So taucht manchmal - aber nicht immer - die Fehlermeldung auf:
- "Die Verbindung ist ungültig."
-
- So arbeitet mein Skript "Verlinken von Textstellen.app"
- (auf RT-Epertenseite hinterlegt)
- nur dann einwandfrei, wenn ich es vom AppleScript-Editor aus aufrufe.

Genau dieses Problem hat mich dazu gebracht den Aufruf des Skripts über die Shell zu tätigen. Keine Ahnung, warum das in 10.6 auftritt. So konnte ich das Problem jedenfalls, wie ich finde, elegant umgehen.

Gruß,
Detlef Schulz

An Thomas:
Die Scriptzeile
repeat until exists window "Drucken"
bewirkt, dass das Skript erst mit der Arbeit fortfährt, wenn das Fenster "Drucken" auch aufgegangen ist, also existiert.

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9716 On 13 August, 2010 14:09 Lutz-Dieter Bornemann said,

Hallo Detlef,

vielen Dank für Deine Antwort.
Es liegt also nicht an meinem Rechner oder meinem OS (10.6.4).

Leider habe ich auch mit Deiner Lösung noch Probleme.

Ich habe in RT (6.5.2) folgendes Skript
unter "RagTime-6-Hilfsmittel" hinterlegt:

tell application "RagTime 6.5"
activate
set scriptName to "Verlinken von Textstellen.app"
set thePath to (POSIX path of (path to library folder from local domain as text)) & "Scripts/" & scriptName & "/Contents/MacOS/applet"
-- scriptName über die Shell aufrufen und stdout und stderr in dev/null umleiten damit das Terminal nicht aufgeht:
set x to do shell script (quoted form of thePath) & "> /dev/null 2> /dev/null &"
end tell

Leider passiert gar nichts.
Ich finde meinen Fehler nicht.

Gruß
Lutz

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9717 On 15 August, 2010 20:52 djschulz said,

Mmmh, funktioniert bei mir einwandfrei.
Könnte vielleicht an Rechten liegen. Falls der aktuelle User keine Administrationsrechte hat. Einfach mal das Skript von einem anderen Ort starten, z.B. dem Schreibtisch und überprüfen ob es generell funktioniert.
Dann gegebenenfalls den Pfad im RagTime-internen Skript an den neuen Ort anpassen.

Ein Mal hatte ich auch den Fall das ich das Programm im Bundle (SCRIPTNAME/Contents/MacOS/applet) mit chmod +x im Terminal ausführbar machen musste.

Ach ja, nicht vergessen das GUI-Scripting in den Systemeinstellungen einzuschalten unter "Bedienungshilfen > Zugriff für Hilfsgeräte aktivieren.

Gruß,
Detlef Schulz

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9718 On 16 August, 2010 19:44 Lutz-Dieter Bornemann said,

Am 15.08.2010 um 21:56 schrieb djschulz:

> Mmmh, funktioniert bei mir einwandfrei.
> Könnte vielleicht an Rechten liegen. Falls der aktuelle User keine Administrationsrechte hat.

Hallo Detlef,

vielen Dank für Deine Geduld mit mir.

Nachdem ich Dein Skript im Scripts-Ordner
des richtigen Library-Ordners plaziert
und ein "end if" sowie ein "end tell" entfernt hatte,
läuft es auch bei mir einwandfrei.
Die Administratorrechte spielen hier offensichtlich keine Rolle.

Allerdings läuft mein Skript "Verlinken von Textstellen.app"
auch weiterhin nicht einwandfrei.

Ich glaube aber nunmehr zu wissen,
dass nicht der Aufruf (Start) das Problem ist,
sondern der direkt danach folgende weitere Ablauf.

Seltsamerweise funktioniert alles beim allerersten Aufruf bestens
(egal, von wo aus man das Skript startet).
D.h., das Skript "erkennt" die markierte Stelle (selection [= Knopftext]),
fordert auf und lässt zu, dass der Benutzer das Sprungziel markiert,
und nimmt dann korrekt die Verlinkung vor.

Bereits ab dem zweiten Mal wird schon die markierte Stelle
in folgenden Situationen vom Skript nicht wahrgenommen:

1. Aufruf des Skripts von RT aus.
2. Starten des Skripts durch Doppelklick im Finder

Einwandfrei funktioniert das Skript mehr als einmal
in folgenden Situationen:

1. Abspeichern des Skripts im ".scpt-Format",
Doppelklick und Ausführen vom AppleScript-Editor.

2. Starten der Anwendung "Verlinken von Textstellen.app" (s.o.)
vom einem AppleScript-Editor-Skript aus mit den Zeilen
open file "… :Verlinken von Textstellen.app" und
execute document 1

3. Einbetten des AppleScript-Textes in eine Sequenz
des Short-Cut-Programms "QuicKeys" und
und Zuordnung eines Tastaturkürzels zum Aufruf.

Mit der letztgenannten Möglichkeit lebe ich zur Zeit,
ohne Einbußen zu spüren.

Trotzdem … es hat doch vor OS 10.6 funktioniert.
Mir wäre es immer noch lieber,
wenn ich es per Tastaturkürzel von RT aufrufen könnte.

Oder müssen wir damit leben,
dass von OS-Version zu OS-Version
die AppleScript-Fähigkeit von RT schwindet
wie das Gedächtnis eins Alzheimerpatienten?????????

Wqs meinst Du?

Gruß und nochmals vielen Dank für die Geduld
Lutz

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#8859 On 20 August, 2009 22:26 djschulz said,

Hab jetzt keine 6.5 Version parat. Aber mit 6.0 klappt es per AppleScript mit GUI-Scripting folgendermaßen bei mir:

set ersteSeite to 2 as text
set letzteSeite to 3 as text

tell application "RagTime 6"
activate
open layout "Layout 1" of document 1
end tell

tell application "System Events"
tell process "RagTime"
click menu item "Drucken…" of menu 1 of menu bar item "Ablage" of menu bar 1
click radio button "Von:" of radio group 1 of window "Drucken"
set value of text field 2 of window "Drucken" to ersteSeite
set value of text field 1 of window "Drucken" to letzteSeite
click button "Vorschau" of window "Drucken"
--zum Drucken dann: click button "Drucken" of window "Drucken"
end tell
end tell

Gruß,
Detlef

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#9710 On 12 August, 2010 09:43 Thomas Kaegi said,

Hallo Detlef

Für ein spezielles Problem wollte ich dein Script benutzen, erhalte aber beim ersten Statement, das auf das Fenster "Drucken" zugreifen will, die Fehlermeldung: "window "Drucken" of process "RagTime" kann nicht gelesen werden."

Das Dialogfenster heisst aber "Drucken" und wird auch geöffnet. Müsste evtl. eine Zeitverzögerung eingebaut werden, weil das Fenster sonst noch nicht geöffnet ist? Wie macht man das? Ich hab's mit einer Schlaufe versucht, die auf 1000 zählt. Hat aber nichts genützt. Auch der Versuch, das Fenster "Print" zu nennen hat nichts gebracht.

Gruss, Thomas

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#8860 On 21 August, 2009 06:21 Thomas Kaegi said,

Hallo Detlef

Deine AppleScript- und GUI-Scripting-Kenntnisse in Ehren! Aber das geht wirklich viel einfacher mit QuicKeys, das nichts anderes ist, als GUI-Scripting, jedoch mit einem echten eigenen GUI statt mit kryptischen Befehlen. Aber natürlich - es ist kein kostenloses Programm. Ich benutze es seit "Urzeiten" und möchte es nicht missen. Es hilft mit allen Programmen, nicht nur mit RagTime.

Mit freundlichem Gruss
Thomas

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#8862 On 21 August, 2009 20:51 djschulz said,

Hallo Thomas,

danke für den Hinweis. Ich kenne QuicKeys seit System 7. Damals war es noch unverzichtbar. Ich habe es jetzt seit langem nicht mehr vermisst. Ich nehme an, es empfiehlt sich für alle, die sich nicht mit den Fallstricken des GUI-Scriptings abgeben möchten - und dafür habe ich großes Verständnis.
Ich persönlich ziehe, wo immer möglich, die Bordmittel von OS X vor.
;-)

Liebe Grüße,
Detlef Schulz

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#8864 On 23 August, 2009 15:34 Jörg Bornemann said,

Hallo allerseits,

vielen Dank für die Rückmeldungen zu meinem Problem. Ich hatte
gehofft, dass ich das Problem RagTime intern lösen könnte, da ich
Dokumente mit Kollegen austausche und dann wichtig ist, dass alles
innerhalb des RagTime-Dokuments funktioniert. QuicKeys nennen etliche
auch nicht ihr eigen. Wenn ich die Apple-Script-Lösung von Detlef
Schulz richtig verstehe, muss diese außerhalb von RagTime gestartet
werden.

Da ich Neuling in AppleScript bin, wollte ich zunächst vor allem
wissen, ob mein Script fehlerhaft ist oder RagTime, weil die im
Funktionsverzeichnis von RagTime angegebenen Befehle zwar
grundsätzlich funktionieren müssten, dies aber einfach nicht der Fall
ist bzw. ob das Problem bekannt ist und möglicherweise behoben werden
wird?
- Jörg Bornemann

Re: Zugriffsprobleme auf Print-Dialog in RagTime unter AppleScri

#8856 On 20 August, 2009 12:50 Thomas Kaegi said,

Hallo Jörg

Ich weiss zwar auch nicht weiter mit AppleScript - aber in solchen Fällen hilft das Programm QuicKeys, um die Automatisierung doch durchführen zu können.

Gruss
Thomas