Ich möchte den Befehl  ⌘ Cmd + ⇧ Shift + D 

mittels Apple Skript ausführen

Mit folgendem Kommando funktioniert es nicht 

tell application "System Events"

delay 0.5

keystroke "d" using {shift down, command down}

end tell

Wer weiß Rat?


 

Gefragt in Frage von (31.5k Punkte)
Bearbeitet von
0 Punkte

4 Antworten

kann keinen Fehler erkennen. Was soll die Tastenkombination bewirken?
Beantwortet von (24.9k Punkte)
0 Punkte
Ich automatisiere sämtliche Abläufe. Mit dem Kommando soll die Checkbox "dokumentiert" aktiviert werden.

Dass soll immer dann geschehen, wenn eine Zusammenfassung oder ein Arztbrief erstellt wurden.
Das Problem ist eventuell, dass der Fokus nicht auf dem richtigen Fenster liegt.
Das war schon die Idee von Herr Hofdam

hat aber auch nicht weiter geholfen.
Nicht ganz. Herr Hofdam meinte, dass man die Tasten nicht gleichzeitig drücken darf. Das stimmt so nicht. Da gibts hier und im Tauschcenter auch einige Beispiele (z.B. Aufruf ImpfDoku).

Wenn man Ihr Script bei tomedo ausführt ertönt ein "Fehlersignal" nach dem Motto, dass in dem aktuellen Fenster diese Tastenkombination nicht möglich ist.

Ein ähnliches/gleiches  Problem hab ich mit dem Script, das automatisch das korrekte Impfzertifikat erstellen soll.

Wenn ich in dem Fenster die tastenkombination drücke, wird das Häkchen automatisch gesetzt. Wenn ich stattdessen das Skript ausführe erhalte ich folgenden Fehler.

Vielleicht fehlt:

 

Tell application "tomedo" to activate

 

Dann weiß System Events, dass im tomedo ein Kommando ausgeführt werden soll.
Beantwortet von (1.9k Punkte)
0 Punkte
Habe Ihren Tipp ausprobiert, funktioniert leider auch nicht.

Das skript wird ausgeführt, wenn Tomedo aktiv ist. Bei anderen Kommandos funktioniert das.

Was Appleskripts angeht bin ich ein Laie und komme manchmal nur durch Herumprobieren ans Ziel.

Trotzdem Vielen Dank für den Tipp.
Sie brauchen ein delay.

Ihr Kommando drückt die Tasten gleichzeitig und nur kurz.

Wenn Sie das Dokumentationsfeld per Tastenkombination erreichen wollen, müssen Sie zuerst Command und Shift drücken und dann das D dazunehmen.

Diesen Vorgang müssen Sie im AppöeScript nachstellen:

Kommando z. B. Keydown und Keyup.

Dann müßte es klappen
Vielen Dank

we sähe dann das Kommando aus?
tell application "System Events" to activate
delay 0.5
keydown(55)
keydown(57)
keystroke (2)
delay 0.02
keyup(57)
keyup(55)

Leider versteht Tomedo das nicht

 

Sind sie im Januar bei diesem Problem weitergekommen? Ich habe exakt das gleiche Problem, möchte das sich in bestimmten Aktionsketten die Medikamentenverordnung öffnet. Der Versuch:

tell application "System Events"

   keystroke "M" using {command down, control down}

end

,den ich letzlich aus dem Impfprogrammaufruf von Tomedo entnommen und abgewandelt habe, geht nicht. (Der Impfprogrammaufruf allerdings auch nicht....)

Beantwortet von (12.6k Punkte)
0 Punkte
Nein mit dem Problem bin ich nicht weiter gekommen.

Vielleicht hat ja wirklich jemand eine Lösung. Es ist wohl wirklich ein Fokusproblem weshalb solche Skripts in der Verwendung bei Aktionsketten stark eingeschränkt sind.

Ihr Problem dürfte aber einfacher zu lösen sein. In den Aktionketten selbst kann man festlegen, dass Verordnungen ausgestellt werden. Da müssen Sie nur die gewünschte Auswahl einfügen. Als auslösende Bedingung kann man dabei auch bestimmte Inhalte von Karteieinträgen auswerten.
@ Herr Erich

haben Sie denn das Skript für den Rechner aktiviert? (Skriptverwaltung, oben)

tell application "System Events" to tell process "tomedo"

click UI element "dokumentiert" of group 1 of splitter group 1 of splitter group 1 of window 2

delay 2.0

end tell

 

Jedes Feld und jeder Button ist in der Benutzeroberfläche ein sog. UI Element und kann per Befehl angesprochen werden. Mit Programmen wie UI Browser kann man diese Elemente auslesen bzw. eine Info über die genaue Bezeichnung bekommen. 

O. g. Script wäre um das `dokumentiert`-Feld anzusprechen (Fragestellung von Herrn Klaproth). Das funktioniert ganz gut, hat aber auch sein Limit: das UI Element kann nur bei aktiver Patientenkartei angesprochen werden. Befindet man sich in der Übersicht wäre das `dokumentiert`-Feld ein anderes UI-Element und es kommt eine Fehlermeldung.

Mit den Tastenkombinationen (3 Tasten gleichzeitig oder 2 Tasten plus 1 Taste zusätzlich) hatte ich mir seinerzeit die Zähne ausgebissen und war schliesslich dann zu den UI Elementen gewechselt.

 

Viele Grüße

Vielen Dank verstehe von den Skripts zu wenig. Sie haben sich da tief reingearbeitet.

habe Ihren Tipp gleich ausprobiert. Sowohl im Rahmen einer Aktionskette als auch mit Hilfe der Auslöser funktioniert das automatische Setzen eines Markers in den Besuchs-chekboxen nicht.

Ich erhalte dann folgende Fehlermeldung:

Der Marker soll gesetzt werden wenn eine Zusammenfassung geschrieben wurde bzw. ein Arztbrief angelegt wurde. Auslösen möchte ich das entweder im Rahmen einer laufenden Aktionskette oder beim Schließen der Kartei. Sehen Sie den Fehler anahnd der Fehlermeldung?

Leider lassen sich die Checkboxen marker micht aus den Aktionsketten heraus ansteuern.

Ich nehem das zum Anlass hier noch mal eine Feature request Anfrage zu stellen.

@Frau Wieder: Ja, es kommt auch das "Zonk" Geräusch...

@Herr Klaproth: Ja, aber da muss ich Medis aus der Hausliste vorauswählen, und da ich es als DMP Checkout benutzen möchte, sind die Medis so vielgestaltig bei einem Hausarzt, daß ich den Pfad verlassen habe. Ich möchte die Medikamtenverordnung blanko auf haben, die mir dann den Medplan zur Verordnung zeigt - so wie ich es unter Command Control M ja auch habe....

Die Lösung von Herrn Hofdmann klingt logisch - natürlich muss der Mac wissen in welchem Fenster er was klicken soll, aber ungeheuer komplex....

Also ich wende diese einfachen GUI-Befehle in Apple-Scripts, um Tasten zu drücken, eigentlich erfolgreich an. Folgende Probleme könnten bei Ihnen vorliegen:

1. Wie anderweitig schon erwähnt, zum Zeitpunkt des Tasendrucks könnte das richtige Fenster nicht aktiv sein. Darauf zu achten, ist man bei der Erstellung von Aktionsketten nicht gewöhnt, da dann tomedo auf die richtige Umgebung der gewünschten Aktion selbst achtet. D.h. Sie müssen bei Erstellen und Ausführen der Aktionskette darauf achten, dass sie immer in derselben Situation gestartet wird.

2. System Events und tomedo haben möglicherweise nicht die Rechte bekommen, das zu tun, was Sie von ihnen verlangen. Da ist macOS in den letzten Versionen zunehmend strenger geworden und bei Aufruf von Scripten außerhalb des Scripteditors werden mitunter die entsprechenden Fehlermeldungen verschluckt. Folgendes sollte unter Sicherheit in des Sytemeinstellungen vorhanden sein:

3. Die tell-Befehle im Script müssen richtig verschachtelt sein. Z.B.:

tell application "System Events"

tell process "tomedo"

key code 8 using command down

end tell

end tell

Ich verwende auch lieber den Befehl key code anstatt keystroke, da man alle Tasten einer großen Tastatur spezifisch ansprechen kann. Die Codes für die Tasten kann man z.B. hier nachschauen.

@Michael Hofdmann: Dabei werden übrigens keine Tastendrücke auf Tastaturebene simuliert, sondern das Ergebnis der Tastenkombination ans Betriebssystem geschickt; das hat also nicht mit Zeitdauer des Befehls o.ä. zu tun.

Beantwortet von (3k Punkte)
0 Punkte
16,249 Beiträge
24,079 Antworten
42,485 Kommentare
12,255 Nutzer