AppleScriptでモニタの明るさを調整したい
AppleScriptを使って「実行するたびにモニタの明るさを最大にする」単機能アプリケーションを作ろうと思ったのですが、該当する命令が見付けられません。
どなたかご存知の方はいらっしゃいますでしょうか。
Apple サポート App および YouTube チャンネルのお知らせ
* iOS 向け Apple サポート App のバージョン 5.6 が公開されました。
* YouTube - Apple Japan チャンネルで有用なヒントや使い方を配信中です。
* iOS 向け Apple サポート App のバージョン 5.6 が公開されました。
* YouTube - Apple Japan チャンネルで有用なヒントや使い方を配信中です。
コミュニティでの投票について
コミュニティでの投票について解説した記事を公開しました。
コミュニティでの投票について解説した記事を公開しました。
Apple Account (Apple ID) の不正利用を確認する方法
Apple Account に関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
Apple Account に関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
AppleScriptを使って「実行するたびにモニタの明るさを最大にする」単機能アプリケーションを作ろうと思ったのですが、該当する命令が見付けられません。
どなたかご存知の方はいらっしゃいますでしょうか。
System Eventsで試してみては? この辺が参考になりそうですが。
/Library/Scripts/UI Element Scripts/Set Output Volume.applescript
早速のお返事、ありがとうございます。
教えて頂いたファイルを読んだところ、何とかめどが立ちそうです。
windowやgroupの指定が自分では解っていませんので、ちょっと調べてみます。
希望するスクリプトを無事完成させることが出来ました。協力して下さったきくち様、どうもありがとうございます。
AppleScript、ほんとに便利ですねー。プログラムはおろかスクリプトを書くのも今回が初めてだったんですが、きくち様の助言とインターネット検索で1時間ほどでカタチになってしまいました。元々の動機が
音楽を聞きながら寝る→省エネ設定でバックライト消灯(眩しいので)→Mac電源自動で切れる(スリープタイマーソフト)→朝Mac自動起動→バックライト設定が最暗になっている→F15を連打する→毎日これでは面倒だ
なので、あとは起動した時間を取得して起床時刻以外だったらシステム環境設定を起動せずに終了するようにすればもう完璧ですね。
以下、Knowledge Baseとしてソースなどの情報を掲載しておきます。
目的:起動するとディスプレイ輝度を最大にするスクリプトを作成
手段:AppleScriptのGUI Scripting (UI element scripting)機能を使用
参考:以下の4件
・ウィンドウ上の各エレメントの取得方法について
http://allabout.co.jp/computer/macos/closeup/CU20031220asc/
/Library/Scripts/UI Element Scripts/Probe Window.applescript
System Eventsの用語説明
・エレメントに値を渡してやる方法について
/Library/Scripts/UI Element Scripts/Set Output Volume.applescript
ソース:Webに載せたらインデントが無くなってしまって見づらいですが、スクリプトエディタにコピー&ペーストしてコンパイルすれば見易く成形してくれます。
まず命令を送るエレメント(ボタンとかスライダーとか)の名前を把握しなければなりません。命令を送りたいエレメントを含むウィンドウを最前面に表示した状態で(この場合はシステム環境設定の"ディスプレイ"を表示した状態で)、以下のスクリプトを実行して名前を調べます。"System Preferences"のところを目的のアプリケーション名に書き換えればその他のアプリケーションでも使えます。
-----
tell application "System Preferences"
activate
end tell
tell application "System Events"
if UI elements enabled then
tell process "System Preferences"
get every UI element
tell tab group 1 of window 1 of application process "System Preferences" of application "System Events"
get every UI element
get every UI element of every UI element
end tell
end tell
else
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
display dialog "UI element scripting is not enabled."
end tell
end if
end tell
-----
ずらずらと各エレメントが列挙されます。今回は"明度"スライダの設定値を変えたいので、この中から"明度"というテキストを探します。すると、
{slider 1 of group 2 of tab group 1 of window "iMac" of application process "System Preferences", static text "明度" of group 2 of tab group 1 of window "iMac" of application process "System Preferences"}
を見付けられます。"iMac"のところはお使いのMacによって変わります。
これから"明度"スライダは slider 1 of group 2 of tab group 1 of window "iMac" of application process "System Preferences" という名前で処理されていることが解るので、後はこれに設定値を送ってやるだけです。
サンプルスクリプトのSet Output Volume.applescriptによるとスライダの値は0.0〜1.0の範囲を取るようなので、最大輝度を得るために常に明度スライダに1.0の値を送るスクリプトにしました。
-----
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
if UI elements enabled then
tell slider 1 of group 2 of tab group 1 of window 1 of application process "System Preferences"
set value to 1.0
end tell
else
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
display dialog "UI element スクリプティングが有効になっていません。
「補助装置にアクセスできるようにする」にチェックを入れて下さい。"
end tell
end if
end tell
quit application "System Preferences"
-----
これで常に輝度を最大にするスクリプトは完成です。他のPreferencePaneで使いたい場合は3行目の "com.apple.preference.displays" を目的のPreferencePaneのものに変えてやればオッケーです。
ここに入る各PreferencePaneの名前は /System/Library/PreferencePanes/ から目的のPreferencePaneを"パッケージの内容を表示"で開いて、中にある Info.plist を開けば、CFBundleIdentifier という項目で書かれています。
おめでとうございます! & msg # 1.1.1.1のまとめが素晴らしいです!!
このやり方、大変参考になります。感謝!!!
AppleScriptでモニタの明るさを調整したい