Windows Vistaに従来利用していたアプリケーションをインストールする場合や、インストールしたものを起動する場合に失敗するというケースがある。 この種のトラブルの原因として考えられるものが2つある。Windowsのバージョン番号が指定されている場合と、不正なパスが指定されている場合だ。
Windows XPとWindows Vistaはメジャーバージョン番号が変わっているため、Windows XPのみの動作を想定してアプリケーションがWindows XPのバージョンを確認するように作られている場合、そこでエラーが起こる。こうしたケースでは、アプリケーションを「互換性テクノロジ」を使って動作させるだけで簡単に解決する場合がある。 「互換性テクノロジ」は「互換モード」と「互換フィックス」で構成されており、Windows XPでも存在する機能ではあるが、Windows Vistaではユーザーアカウント制御(UAC)を考慮した特権レベルの設定が「互換フィックス」に追加されている。それぞれWindows Vistaの実行ファイルのプロパティにある「互換性」タブから簡単に設定できるもので、そのアプリケーションを動作させるときだけ擬似的に旧OSのバージョンで動作させることができる。また、管理者権限が必要なアプリケーションが動作しない場合は、特権レベルの「管理者としてこのプログラムを実行する」にチェックを入れることで、アプリケーションを管理者権限で起動することも可能だ。 アプリケーションのインストールやアンインストール、起動時の問題については、まずこの「互換性テクノロジ」を活用してほしい。
もうひとつの不正なパス指定の問題というのは、プログラムの中でファイルやフォルダのパスをハードコートしているようなケースで発生する。これはWindows XPとWindows Vistaで大幅にディレクトリ構成が変わっているということが原因になっている。この場合は前述の互換性テクノロジは利用できないので、ShGetFolderPath()等のAPIを使用してファイルとフォルダパスを取得するよう、プログラムを改修する必要がある。
「これらの問題に直面した場合、まずそれがどういう意図で指定されたものなのかを確認する必要があります。もともとWindows XPでの利用を前提としたアプリケーションだったのか、それとも深い意図はない指定なのか。こういった開発当時の経緯もよく確認したうえで対応を検討する必要があります」と金野氏はアプリケーションのチェックポイントを語る。