High Sierra対応。
2018-12-04追記:Mojave対応版
- SystemUIServer.appによるコンピュータ制御を許可する。
- システム環境設定を操作して画面を白黒反転させるスクリプトを作る。
- 1.のスクリプトをメニューバーに登録する。
1. SystemUIServer.appによるコンピュータ制御を許可する
スクリプトによって画面を操作するには,
システム環境設定 -> セキュリティとプライバシー -> プライバシー -> アクセシビリティ
で,「下のアプリケーションにコンピュータの制御を許可」にUIを操作するアプリケーションを追加し有効にしておく必要がある。
メニューバーに登録したスクリプトから制御するため,SystemUIServer.appを登録しておく。
※SystemUIServer.appの場所:/System/Library/CoreServices/SystemUIServer.app
2. システム環境設定を操作して画面を白黒反転させるスクリプト
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
tell current pane
reveal anchor "Seeing_Display"
end tell
end tell
tell application "System Events"
repeat 50 times #ハングアップ対策で,最大繰り返し回数を設定
try
tell group 1 of window 1 of process "System Preferences"
click checkbox "カラーを反転"
click checkbox "グレイスケールを使用"
click checkbox "コントラストを上げる"
click checkbox "カラー以外で区別"
end tell
exit repeat
on error errMsg
log ("ERROR: " & errMsg)
delay 0.1
end try
end repeat
end tell
2018-12-04追記:
High SierraからMojaveになった際に,System Preferencesのメニュー構成が変更されたのか,window 1 of process "System Preferences"
ではチェックボックスを取得できず,group1 of window 1 of process "System Preferences"
から取り出すように変更しました。
ついでに,画面遷移が間に合っていない場合にエラーで終了していたので,repeat
とdelay
を使って画面遷移を待つように変更しました。(イベントリスナー的な設計にできればベターなのですが…)
3. メニューバーへの登録
- スクリプトエディタ.appの 環境設定 -> 一般 で「メニューバーニスクリプトメニューを表示」にチェック
- メニューバーのスクリプトメニュー -> スクリプトフォルダを開く -> ユーザ・スクリプト・フォルダを開く で開かれるフォルダ(~/Library/Scripts/)に上記スクリプトを配置する。(※エイリアス可)