Ich verwende Mac OS X 10.7.2. Gibt es eine Möglichkeit, ein AppleScript oder einen Terminalbefehl auszuführen, der die Funktion "Maustasten" auf der Registerkarte "Universeller Zugriff" schnell ein- oder ausschaltet? Idealerweise suche ich nach einer Lösung, die kein GUI-Skripting der Systemeinstellungen-App beinhaltet, obwohl das etwas besser als nichts wäre.
Ich habe defaults write com.apple.universalaccess useMouseKeysShortcutKeys 1
verschiedene andere Formen dieser Aussage untersucht, aber ohne Erfolg.
Hier ist die GUI-Scripting-Lösung:
tell application "System Preferences"
reveal anchor "Mouse" of pane id "com.apple.preference.universalaccess"
tell application "System Events"
tell process "System Preferences"
tell first window
tell first tab group
tell radio group 1
if value of radio button 1 is 1 then
# enabled, so disable
click radio button 2
else
# disabled, so enable
click radio button 1
end if
end tell
end tell
end tell
end tell
end tell
quit
end tell
Es startet die Systemeinstellungen , falls erforderlich, zeigt das Fenster jedoch nicht an und beendet es anschließend, sodass es von einem UI-POV aus zumindest nicht das Fenster anzeigt.
Sie können die persistente Einstellung, auf der die Konfiguration der Systemeinstellungen basiert, mit den folgenden Befehlen ändern:
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool YES
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool NO
Leider ändert dies nur die Konfigurationsdatei und wendet die Änderungen nicht auf das laufende System an.
Während Sie die Wahltasten mit AppleScript programmgesteuert drücken können , wie folgt:
tell application "System Events"
key down option
key up option
end tell
Die Option „Option fünfmal drücken, um die Einstellung umzuschalten“ befindet sich auf einer höheren Ebene und wird dadurch nicht ausgelöst. Während alle regulären Option
Tastendrücke ignoriert werden, nachdem Sie nur ausgeführt haben key down option
, können Sie die Maustasten immer noch umschalten.
Beim Debuggen der Systemeinstellungen während des Änderns der Einstellung werden Aufrufe an LaunchUAServerIfNeeded
und UAMouseKeysSetEnabled
im privaten UniversalAccessCore
Framework angezeigt. Wenn wir dieses Framework nicht zurückentwickeln und unsere eigenen Binärdateien schreiben, werden wir meines Erachtens keinen geeigneten programmatischen Weg finden, dies zu tun.
Können Sie dafür nicht das Keystroke-Scripting in AppleScript verwenden?
Etwas in der Art von:
tell application "System Events"
repeat 5 times
//any of these should work
key option
key code 58
key code option
//I do not know if this works
keystroke option
end tell
key down option
und key up option
, funktionieren aber nicht, auch nicht mit delay 0.1
zwischen den einzelnen.key up
.
Daniel
Benutzer54823