Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@kasanma3104

AppleScriptで画面を白黒・カラー反転表示する(メニューバーから実行可能)

More than 1 year has passed since last update.

High Sierra対応。
2018-12-04追記:Mojave対応版
IMG_2509.jpg

  1. SystemUIServer.appによるコンピュータ制御を許可する。
  2. システム環境設定を操作して画面を白黒反転させるスクリプトを作る。
  3. 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"から取り出すように変更しました。
ついでに,画面遷移が間に合っていない場合にエラーで終了していたので,repeatdelayを使って画面遷移を待つように変更しました。(イベントリスナー的な設計にできればベターなのですが…)

3. メニューバーへの登録

  1. スクリプトエディタ.appの 環境設定 -> 一般 で「メニューバーニスクリプトメニューを表示」にチェック
  2. メニューバーのスクリプトメニュー -> スクリプトフォルダを開く -> ユーザ・スクリプト・フォルダを開く で開かれるフォルダ(~/Library/Scripts/)に上記スクリプトを配置する。(※エイリアス可)
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kasanma3104
弁護士やってます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?