もう1つの互換性機能「プログラムの互換性アシスタント」
このほかの互換性機能として注目したいのが、プログラムの互換性アシスタント(PCA)である。前述のとおり以前のアプリケーションを使用する際に問題が発生する場合は、<互換性>タブで設定しなければならないが、ハードルが高いという問題は既に述べたとおり。そのため、互換性のトラブルシューティング機能と並んで動作するのが、プログラムの互換性アシスタントである。
具体的には互換性に問題が発生するアプリケーションの行動パターンを検出し、回避策を提供するというものだ。具体的にはインストールの失敗やプロセス作成の失敗がそれにあたり、前者の場合は「プログラム互換性アシスタント」ダイアログが起動し、<推奨の設定を使用して再インストールする><このプログラムは正しくインストールされました><キャンセル>といずれかの選択をうながされる。
1つ目を選ぶとWindows XP Service Pack 2互換モードでインストールを再度実行。2つ目は正常にインストールが完了したときに選択する。そもそもプログラム互換性アシスタントは、ユーザーアカウント制御によって検出されたインストーラーが、正常に動作しているか確認し、正しいリターンコードが帰ってこないときに呼び出される機能だ。そのため、一見すると正常に完了しているものの、インストーラー側の問題で同ダイアログが起動することがある。最後の<キャンセル>を選択すると、プログラム互換性アシスタントは何もしない。ちなみに同機能は、ネットワーク上の共有フォルダからインストールする場合や、既に互換フィックスが適用されている場合、マニフェストで実行権限が設定されている場合は動作しない(図440)。
同ロジックはアプリケーション実行時にも動作する。実行プログラムが稼働する際にはプロセスを作成するが、その動作失敗を検出すると、同じように「プログラム互換性アシスタント」ダイアログが起動。Microsoft側で問題が発生することを事前に確認しているアプリケーション起動時に表示されるダイアログでは、<オンラインで解決策の有無を確認する><プログラムを実行する><キャンセル>から選択をうながされる。
1つ目を選ぶとWindowsエラー報告がMicrosoftに送信され、適応する回答が表示される。大多数の回答は"最新バージョンを使うべし"といった内容なので、アプリケーションがどのように動作し、どのような影響を把握しているのであれば、<プログラムを実行する>ボタンをクリックして、実行を継続すればよい。また、BSoD(BlueScreen of Death)など、Windows 7の安定性を大きく揺るがすアプリケーションを実行した場合も同ダイアログが起動するが、選択肢は<オンラインで解決策の有無を確認する>のみ。アプリケーションの実行を継続することはできない(図441~442)。
コラム
○デスクトップコンポジションとは
Windows VistaおよびWindows 7では、デスクトップ上に表示するウィンドウなどを、クライアント側で合成し表示するデスクトップコンポジション機能を使用し、デスクトップ描画を行なっている。同機能を無効にすると、ウィンドウのタイトルバーやフレームの視覚効果が無効になり、PCゲームなどGPUリソースを大きく必要とするアプリケーションの動作が改善されることが多い。そのため、<互換性>タブに同項目が用意されているのだ。