Я использую Mac OS X 10.7.2. Есть ли способ запустить команду AppleScript или терминала, которая быстро включает или выключает функцию «клавиши мыши» на вкладке «Универсальный доступ»? В идеале я ищу решение, которое не включает в себя GUI-скрипты приложения «Системные настройки», хотя это было бы немного лучше, чем ничего.
Я исследовал defaults write com.apple.universalaccess useMouseKeysShortcutKeys 1
и другие формы этого утверждения, но безрезультатно.
Вот решение для сценариев GUI:
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
При необходимости он запустит Системные настройки , но не показывает окно и затем закрывает его, поэтому с точки зрения пользовательского интерфейса он, по крайней мере, не показывает окно.
Вы можете изменить постоянный параметр, на котором основана конфигурация Системных настроек, с помощью следующих команд:
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool YES
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool NO
К сожалению, это только изменяет файл конфигурации и не применяет изменения к работающей системе.
Хотя вы можете программно нажимать клавиши Option с помощью AppleScript, например:
tell application "System Events"
key down option
key up option
end tell
Нажмите Option пять раз, чтобы переключить настройку, она находится на более высоком уровне и не срабатывает при этом. Хотя все обычные Option
нажатия клавиш игнорируются после запуска key down option
, вы все равно можете переключать клавиши мыши.
Отладка системных настроек при изменении настройки показывает вызовы в частной структуре LaunchUAServerIfNeeded
и в ней . Если мы не реконструируем эту структуру и не напишем свои собственные двоичные файлы, я не думаю, что мы получим правильный программный способ сделать это.UAMouseKeysSetEnabled
UniversalAccessCore
Разве вы не можете использовать для этого сценарии нажатия клавиш в AppleScript?
Что-то вроде:
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
и key up option
, но не работают, даже delay 0.1
между ними.key up
.
Даниэль
пользователь54823