Verwenden Sie AppleScript, um auf Optionsfelder zu klicken

1

Ich denke, dies ist ein Fehler in Mac OS X: Bei einer Konfiguration mit zwei Monitoren wechselt das Dock von Zeit zu Zeit zum zweiten (nicht zum Haupt-) Monitor.

Um dieses Problem zu beheben, öffne ich das Dock und klicke auf die Optionsfelder "Links" und "Unten" für das Element "Position auf dem Bildschirm".

Ich muss dies mit AppleScript automatisieren. Ich konnte das Dock mit diesem Skript öffnen, bin mir aber nicht sicher, wie ich in AppleScript auf das Optionsfeld "Links" und "Unten" klicken soll.

tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.dock"
    activate
end tell

Ich habe versucht, Code in das Skript einzufügen, aber es funktioniert nicht.

click radiobutton "Left"

Bildbeschreibung hier eingeben

Prosseek
quelle
1
Ich würde vorschlagen, dass Sie die Schaltfläche "Aufzeichnen" im Skript-Editor verwenden, damit dieser beim Klicken auf die gewünschte Schaltfläche Code für Sie generiert. Dies wird zwei Dinge bewirken: Erstens wird ein funktionierendes Skript generiert, und zweitens können Sie aus diesem Skript lernen.
Tubedogg
@tubedogg, die Aufnahmefunktion im AppleScript-Editor funktioniert in den meisten Fällen überhaupt nicht und in anderen Fällen nur unvollständig. Finder ist eine der wenigen Apps, mit denen es funktioniert. Ehrlich gesagt, habe ich es als nutzloses Feature empfunden.
user3439894
@prosseek, ich habe meine Antwort aktualisiert, um mit OS X 10.11.6 zu arbeiten, wie im "Hinweis:" am Ende meiner Antwort erläutert.
user3439894

Antworten:

1

Sie können die Optionsfelder auf mehrere Arten aktivieren.

Nach dem tell application "System Preferences" Block benutze einen tell application "System Events" Block , zB:

tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.dock"
    activate
end tell

tell application "System Events"
   click radio button 1 of radio group 1 of window 1 of process "System Preferences"
end tell

Bei dieser ersten Verwendung ist Optionsfeld 1 Links , Optionsfeld 2 Unten und Optionsfeld 3 Rechts .

Oder:

tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.dock"
    activate
end tell

tell application "System Events"
   click radio button "Left" of radio group 1 of window "Dock" of process "System Preferences"
end tell

Verwenden Sie in dieser zweiten Verwendung direkt Left , Bottom oder Right, und Sie können auch Dock anstelle von Fenster 1 verwenden . (Letzteres können Sie in einem dieser Beispiele tun.)

Oder:

tell application "System Preferences"
    set the current pane to pane id "com.apple.preference.dock"
    activate
end tell

tell application "System Events"
    click (every radio button whose value of attribute "AXTitle" is "Left") of radio group 1 of window 1 of process "System Preferences"
end tell

Verwenden Sie in dieser dritten Verwendung Left , Bottom oder Right für den Wert, bei (every radio button whose value of attribute "AXTitle" is "?")dem der ?eine dieser Werte ist.

Hinweis: Diese Beispiele wurden unter OS X 10.11.6 getestet und funktionieren wie jetzt bearbeitet. Ich habe
of radio group 1zwischen Optionsfeld und Fenster hinzugefügt . Für die Verwendung in OS X 10.8.5 of radio group 1aus dem Code entfernen .

user3439894
quelle
Keiner der drei Codes funktioniert für mich (Mac OS X 10.11.6). Das erste Beispiel: Ungültiger Index. "Nummer -1719 von Optionsfeld 1 von Fenster 1 von Prozess" Systemeinstellungen ". Das zweite Beispiel: Optionsfeld" Links "von Fenster" Dock "von Prozess" kann nicht abgerufen werden. "Systemeinstellungen\"." Nummer -1728 aus dem Optionsfeld "Links" des Fensters "Dock" des Prozesses "Systemeinstellungen". Das letzte Beispiel: fehlender Wert.
Prosseek
@prosseek, Das alles funktioniert für mich unter OS X 10.8.5, das ich im Moment verwenden möchte. Ich werde nach dem Mittagessen ein OS X 10.11.6 hochfahren und sehen, was sich geändert hat.
User3439894
Ich habe diese gerade unter macOS sierra 10.12 getestet und sie funktionieren wie geschrieben.
User3439894
0

Anstatt auf Schaltflächen zu klicken, was langsamer und fehleranfälliger ist, ist es besser, die Einstellungen direkt mit AppleScript zu ändern.

Führen Sie den folgenden Befehl aus, um die Einstellung für die eingestellte Bildschirmkante zu ändern

tell application "System Events"
    tell dock preferences
        set properties to {screen edge:bottom}
    end tell
end tell

Wenn Sie möchten, dass es nach links geht, tauschen Sie einfach "unten" gegen "links" oben.

Um alle möglichen Einstellungen zu erhalten, wählen Sie "Eigenschaften abrufen" anstatt "Festlegen".

Jimmy
quelle