4.10 プログラムの互換性アシスタント (PCA)

4. 新機能や機能変更に伴う互換性問題

この章では、以下のような新機能や機能変更に伴う、互換性問題について紹介します。

4.10 プログラムの互換性アシスタント (PCA)

PCA とは

既存のアプリケーションを動作させるため、Windows Vista や Windows 7 では、「互換性」タブを使っての実行環境を調整することができます。これは大変便利なツールですが、ユーザーが設定をしないと使えないという欠点があります。そこで、PCA 機能が提供されています。これは、互換性に問題がある既存のアプリケーションのパターンを検出し、回避策を提供するという機能です。検出する互換性問題には、以下のようなものがあります。

  • インストールの失敗
  • プロセス作成の失敗

さらに、実行時に問題が起こることがすでに分かっているプログラムを起動しようとした時には、警告などのメッセージを表示します。

ページのトップへ


インストール失敗の検出

インストールが失敗した可能性があると、「プログラム互換性アシスタント」ダイアログ ボックスが表示されます。ここでユーザーは、3 つのオプションのうちのいずれかを選択することができます。

  • 「推奨の設定を使用して再インストールする」

    セットアップが正常に完了しなかった場合に選びます。このオプションを選択すると、「Windows XP SP2 互換モード」を使用して、セットアップを再度実行します。

  • 「このプログラムは正しくインストールされました」

    セットアップが正常に完了した場合に選びます。たとえ、セット アップが正しく完了しても、PCA によってダイアログが表示されることがあります。ここで、ユーザーがこのオプションを選択しておくと、次回から PCA ダイアログが表示されないように設定することができます。

  • キャンセル

    PCA は何も処理を行いません。

    PCA は、UAC によりインストーラーとして検出されたアプリケーションに対して、インストールが成功したかどうかがを確認します。UAC により、インストーラーとして認識された場合には、PCA により実行結果が確認されます。具体的には PCA は [プログラムの追加と削除] のエントリーを探します。エントリーが追加されていないと、インストールに失敗した可能性があるとして、「プログラム互換性アシスタント」ダイアログ ボックスを表示します。だたし、以下のようなインストーラーには、PCA による検出はおこなわれません。

    • ネットワーク インストールである
    • すでに互換フィックスが適用されている
    • マニフェストで実行権限が設定されている

ページのトップへ


プロセス作成の失敗の検出

管理者として実行されていないプログラムが、管理者権限が必要な子プログラムを昇格なしに呼び出すとエラーが発生します。これは既存のアプリケーションにおいては、発生する可能性が高いエラーと考えられます。そこで、子プログラムの起動中にエラーが発生した場合には、PCA により失敗が検出され、ダイアログ ボックスが表示されます。そして、呼び出し側のプログラムに対して、「ElevateCreateProcess」互換フィックスが自動的に適用されます。この互換フィックスは、自身から呼び出すプログラムに対して、昇格をおこない管理者権限で実行できるようにします。互換フィックスの適用により、次回同じプログラムを起動したときには、UAC による昇格確認用のダイアログ ボックスが表示され、管理者権限で実行することが可能になります。2 回目以降の起動時には、「ElevateCreateProcess」互換フィックスが自動的に適用されるため、PCA のダイアログ ボックスは表示されません。

ページのトップへ


既知の問題に対するメッセージ プロセス作成

実行時に問題が起こることがすでに分かっているプログラムを起動しようとした時には、以下のいずれかの処理が行われます。

  • 警告

    システム動作への影響はありませんが、使用上問題があるアプリケーションを実行した場合に表示されるメッセージです (図 4-30 参照)。ここで、「オンラインで解決策の有無を確認する」ボタンをクリックすると、Windows エラー報告が Microsoft に送信され、オンラインで回答が表示されます。また、「プログラムを実行する」ボタンをクリックすると、操作を継続することができます。

    図 4-30: 「プログラム互換性アシスタント」ダイアログ

    図 4-30: 「プログラム互換性アシスタント」ダイアログ

  • ブロック

    ブルー スクリーンになるなど、システムの動作に影響があるアプリケーションを実行した場合に表示されるメッセージです。ブロック メッセージのダイアログ ボックスでは、ボタンは「オンラインで解決策の有無を確認する」しか表示されません。そのため、アプリケーションの操作を継続することはできません。

ページのトップへ