• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Accessibility Inspector

  • Ersteller Troy1977
  • Erstellt am

Troy1977

Gast
Hallo,

würde gerne einen Button automatisch mit Apple Skript drücken und habe folgende Zeilen geschrieben:

click button "OK" of sheet of window "triumph" of window "Systemeinstellungen"

-- triumph ist wohl der Name meines Monitorpresets.
Funktioniert so leider nicht :(
Bekomme manchmal die Fehlermeldung "NSReceiverEvaluationScriptError: 4"
Habe ich mit dem Accessibility Inspector nicht die richtigen Fenster identifiziert?

Da steht
<AXApplication: "Systemeinstellungen">
<AXWindow: "triumph">
<AXSheet>
<AXButon: "OK">


Attributes:
AXRole: "AXButton"
AXRoleDescription: "button"
AXHelp: "(null)"
AXEnabled: "true"
AXFocused (W): "false"
AXParent: "<AXSheet>"
AXWindow: "<AXWindow: "triumph">"
AXTopLevelUIElement: "<AXSheet>"
AXPosition: "x=617 y=144"
AXSize: "w=91 h=32"
AXTitle: "OK"


Actions:
AXPress - press


Denke hier sind nur die ersten 4 Zeilen wichtig oder?

Wäre echt XXLSuper wenn mir jemand hier den Aufruf richtig gestalten könnte.

Ciao

P.S.: Respekt an ATL, der hier wohl u.a. der Crack ist
 

atl

Niederhelfenschwiler Beeriapfel
Registriert
04.11.04
Beiträge
842
Troy1977 schrieb:
Hallo,

würde gerne einen Button automatisch mit Apple Skript drücken und habe folgende Zeilen geschrieben:

click button "OK" of sheet of window "triumph" of window "Systemeinstellungen"
So müsste es funktionieren:
Code:
delay 1
try
	click button "OK" of sheet 1 of window "triumph"
end try

Bemerkungen:
  1. Ein kurzer Delay vor dem (automatischen) Klicken hilft gegen Fehler bei höherer CPU-Belastung
  2. Nutze sheet 1 anstelle von sheet. Die Fenster-Klassen (window, sheet, dialog, button,...) erwarten i.d.R. einen Namen oder eine ID bzw. Nummer hinter der Klassenbezeichnung.
  3. of window "Systemeinstellungen" kann aus der "click button"-Zeile entfernt werden, da das Fenster mittels window "triumph" eindeutig identifiziert wird.
-- triumph ist wohl der Name meines Monitorpresets.
Funktioniert so leider nicht :(
Bekomme manchmal die Fehlermeldung "NSReceiverEvaluationScriptError: 4"
Habe ich mit dem Accessibility Inspector nicht die richtigen Fenster identifiziert?

Da steht
<AXApplication: "Systemeinstellungen">
<AXWindow: "triumph">
<AXSheet>
<AXButon: "OK">
Yepp, die 4 Zeilen zeigen dir den hierarchischen Aufbau des "Pfades" zu deinem UI-Element. In AppleScript gepackt lautet das dann wie folgt:
Code:
button "ok" of sheet 1 of window "triumph" of application "Systemeinstellungen"
Der Fehler in deiner obigen Zeile ist, dass es kein Fenster "Systemeinstellung" gibt, da das die Applikation bezeichnet.* :)

P.S.: Respekt an ATL, der hier wohl u.a. der Crack ist
Nein, nicht wirklich. Ich bin AppleScript-Anfänger. Aber dank PreFab UI Browser bekommt man große Teile des AppleScript-Sourcecodes schon vorgelegt und bracht den nur noch wie gewünscht zusammen stecken. :-D

ByE...

[SIZE=-1]*) Hatte ich übrigens in meiner Mail zu dem Thema vorhin übersehen. :([/SIZE]
 

Troy1977

Gast
Also es lag nicht daran, die Variable WindowName hat nicht richtig oder immer funktioniert, jetzt habe ich bei der Auswahl der Auflösung und bei der Nachfrage die Variable fix auf "triumph" gesetzt und siehe da meine 5 Schlaflosen Nächte sind vergessen :)))))))))))
Warum die aber manchmal funktioniert hat und manchmal nicht ist mir immer noch ein Rätsel. Und nun verfahre ich nach der Weisheit:

Never touch a running System!!!