「Windows スタンダード」≠「Windows Vista スタンダード」(NyaRuRuの日記)
世間では「VistaといえばAero」と賑わって(?)ますが、んじゃ「Aeroって何よ?」と技術的に質問されると言葉に詰まる事も多いだろう。
NyaRuRuさんのブログから所々引用しながら整理すると、
- 「Aero」とは、Desktop Window Manager(DWM)の技術を基盤とした、Vistaの新しいユーザーインタフェース。
- 一般でいうところの「Aero」とは「Aeroスタイル(テーマ)」を指している事が多い。AeroスタイルはHome Basicより上のエディションで選択可能なスタイルの一つ。半透明なウィンドウは「Windows Aero Glass」というエフェクトで実現されている。
- 「Windows Vista Home Basic では Windows Aero は使えない」という表現は一般向けには正しいが、実は Home Basic で選択可能な Windows Vista スタンダード UI(Windows Vista Home Basic のデフォルトテーマ) というのは,Aero からいくつかのエフェクトを使用不能にしただけ(半透明効果や Windows Flip,Windows Flip 3Dなど・・・)のもので,技術的には DWM による Desktop Composition そのもの。
というわけで、「DWM」が一つのキーワード。
DWMを一言で表すと、
Vistaテーマでデスクトップの描画をつかさどる、ユーザーモードプロセスで動作するアプリケーション
てな感じで、各アプリのトップレベルウィンドウを一度バックバッファで合成して、必要な時にデスクトップを描画するVistaの新しいテクノロジーを指す。タスクマネージャーでプロセス一覧を見ると、実体である「dwm.exe」が実行されているのが確認できます。
ここまでは以前に調べてたんだけど、実際にVistaの設定を触っていると「あれ?」と心に引っかかってる事が残ってた。
それは、デスクトップの右クリックメニューから[個人設定]を選択すると、個人設定ウィンドウが表示されますが、[デザインの設定]プロパティでは、「Windows Aero」、「Windows Vista ベーシック」、「Windows スタンダード」、「Windows クラシック」が選択可能であり、[テーマの設定]プロパティでは、「Windows Vista」、「Windows クラシック」の選択が可能になっている。
似たような名前で、片方を変更するともう片方の設定にも影響しているし、ビジュアルスタイルの関係を今度整理しておかないといけないなぁ…、と思ってた矢先に先の記事を読んで大体納得。
つまり、 従来からのスタイル名称とVistaのスタイル名称を分けて考えないといけないこと。そして「Windows Vista スタンダード」というテーマが、 Home Basic以外では表示されない事が、混乱の元になっていたようです。
■Windows Aero | |
Home Basicより上のエディションで選択できるVistaテーマ。DWM有効。Windows Flip 3D、Glass、ウィンドウアニメーション等すべてのエフェクトが有効にできる。Aero表示に対応したディスプレイアダプタが必要。 |
■Windows Vista スタンダード | |
Home Basicのみ選択できるAeroテーマ。DWM有効。いくつかの画面エフェクトが無効化されているが、基本的にAeroを表示するのと同じ位のグラフィック表示スペックが必要。 |
■Windows Vista ベーシック | |
ハードウェア構成により、Aero表示の条件を満たせない場合に選択されるテーマ。DWM無効。WDDMに準拠したドライバを必要とせず、XPと互換性のある古いディスプレイアダプタも使用できる。 |
■Windowsクラシックテーマ | |
・Windows スタンダード ・Windows クラシック | Windows2000やWindows Server 2003で使用されていた外観と同じスタイル。DWMを使用せず、WDDMに準拠したドライバを必要としない。以前からのサポートされているカラースキーマの変更が可能で、何種類かのカラースキーマ・セットが用意されている。 |
DWMが有効になっているのは「Windows Aero」、「Windows Vista スタンダード」であり、それ以外は無効な状態になる。
ちなみに、Aeroテーマ表示中にタスクマネージャーからdwm.exeを強制終了させた場合、一瞬Vistaベーシックテーマに切り替わった後、すぐにdwm.exeが復帰してAeroテーマに戻る・・・はずが、ウチの環境だと復帰に失敗する回数の方が多い。何が悪いんだろ??
そういう訳で、Vista対応のウィンドウアプリを作成する時は、少なくとも、以下の点に注意しながらコーディングする必要があるようだ。
- DWMが有効な状態
(各エフェクトがON/OFFの時の動作も確認) - DWMが無効な状態
- DWMモードが遷移した時
- リモートデスクトップ経由で動作させた時
(リモートデスクトップでもAeroは有効に出来るらしい)
参考:「Microsoft Windows Vista」- Wikipedia
最初にここで調べておいた方が早かったかな^^;
テーマ:Windows Vista - ジャンル:コンピュータ