しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

AppleScriptでモニタの明るさを調整したい

 AppleScriptを使って「実行するたびにモニタの明るさを最大にする」単機能アプリケーションを作ろうと思ったのですが、該当する命令が見付けられません。
どなたかご存知の方はいらっしゃいますでしょうか。

投稿日 2004/02/26 13:23

返信: 6

2004/02/26 19:13 Community User への返信

System Eventsで試してみては? この辺が参考になりそうですが。
/Library/Scripts/UI Element Scripts/Set Output Volume.applescript

2004/02/27 10:13 Community User への返信

早速のお返事、ありがとうございます。
教えて頂いたファイルを読んだところ、何とかめどが立ちそうです。
windowやgroupの指定が自分では解っていませんので、ちょっと調べてみます。

2004/02/27 12:06 Community User への返信

希望するスクリプトを無事完成させることが出来ました。協力して下さったきくち様、どうもありがとうございます。
AppleScript、ほんとに便利ですねー。プログラムはおろかスクリプトを書くのも今回が初めてだったんですが、きくち様の助言とインターネット検索で1時間ほどでカタチになってしまいました。元々の動機が
音楽を聞きながら寝る→省エネ設定でバックライト消灯(眩しいので)→Mac電源自動で切れる(スリープタイマーソフト)→朝Mac自動起動→バックライト設定が最暗になっている→F15を連打する→毎日これでは面倒だ
なので、あとは起動した時間を取得して起床時刻以外だったらシステム環境設定を起動せずに終了するようにすればもう完璧ですね。

2004/02/27 12:50 Community User への返信

以下、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 という項目で書かれています。

2004/02/27 14:41 Community User への返信

おめでとうございます! & msg # 1.1.1.1のまとめが素晴らしいです!!

AppleScriptでモニタの明るさを調整したい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。