アプリケーション開発者向け Microsoft® Windows 7 対応アプリケーションの互換性
更新日: 2009 年 8 月 26 日
Windows7_Compatibility.docx (Word 形式、3.96 MB)
免責
このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマイクロソフトの見解を反映したものです。マイクロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任をマイクロソフトは問われないものとします。
このホワイト ペーパーに記載された内容は情報提供のみを目的としており、明示、黙示、または法令に基づく規定に関わらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。
この文書およびソフトウェアを使用する場合は、適用されるすべての著作権関連の法律に従っていただくものとします。著作権法による制限に関係なく、マイクロソフトの書面による許可なしに、この文書の一部または全部を複製したり、検索システムに保存または登録したり、別の形式に変換したりすることは、手段、目的を問わず禁じられています。ここでいう手段とは、複写や記録など、電子的、または物理的なすべての手段を含みます。
マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の知的所有権を有する場合があります。マイクロソフトから提供される使用許諾書に明記されていない限り、この文書の配布によりこれらの特許、商標、著作権、またはその他の知的財産権がお客様に譲渡されることはありません。
2009 Microsoft Corporation.All rights reserved.
Microsoft、Windows 7™は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
この文書およびソフトウェアで使用されている実在の会社名および製品名は、該当各社の商標です。
このドキュメントは、Windows 7 RC 版における情報をもとに構成しています。仕様および機能は変更される可能性があります。
4. 新機能や機能変更に伴う互換性問題
この章では、以下のような新機能や機能変更に伴う、互換性問題について紹介します。
4.1 リソースの管理
フォルダー構造の変更点
Windows Vista と Windows 7 では、ユーザー データやアプリケーション データを格納するためのフォルダーの構造が大幅に変更されました。おもな変更点は、以下の通りです。
| 項目 | Windows XP | Windows Vista/7 |
| ユーザー プロファイルのルート フォルダー名を変更 | Documents and Settings | Users |
| ユーザーごとのアプリケーション データ (ローミングあり/なし) を一元化 | <username>\App…<username>\LocalSettings\App… | <username>\AppData |
| ユーザーごとのアプリケーション データ フォルダーの場所を変更 | <username>\Application Data | <username>\AppData\Roaming |
| <username>\Local Settings\Application Data | <username>\AppData\Local |
| All Users プロファイルのフォルダー名を変更 | All Users | Public |
| All Users プロファイルのアプリケーション データ フォルダーの場所を変更 | All Users\Application Data | C:\ProgramData |
| ごみ箱を各ユーザー プロファイル フォルダーへ作成 | X:Recycler\<SID> | Users\<username>\$Recycle.bin |
ディレクトリの接合点
フォルダー構造が変更されると、既存アプリケーションが正しくフォルダーにアクセスできないために、動作しない可能性がでてきます。そこで、救済策として「接合点」が用意されています。つまり、変更前のフォルダーの位置には、接合点が用意されていて、アプリケーションが以前のフォルダーやファイルへの書き込みアクセスを試みると、新しいフォルダーへリダイレクトされます。たとえば、「C:\Documents and Settings」は「C:\Users」を示す接合点として設定されています。
接合点は、System 属性が設定され、ACL は「Everyone 読み取り拒否」に設定されています。そのため、既定ではエクスプローラーには表示されません。しかし、コマンド プロンプトで「dir /AL」を実行すると表示することができます。図 4-1 は「dir /AL」の実行結果です。接合点は「JUNCTION」と表示されており、リダイレクト先も表示されています。
.jpg)
図 4-1: dir/AL の実行
Note: dir/AL とは
dir コマンドで、/A オプションを指定すると、さまざまな属性のファイルを表示することができます。中でも、「L」オプションは、再解析ポイント (接合点) を表示するために使用します。
接合点が作成されているパスと、リダイレクト先は、次の通りです。
ユーザーのデータ フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Documents and Settings | Users |
ユーザーごとのデータ フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Documents and Settings\<username>\My Documents | Users\<username>\Documents |
| Documents and Settings\<username>\My Documents\My Music | Users\<username>\Music |
| Documents and Settings\<username>\My Documents\My Pictures | Users\<username>\Pictures |
| Documents and Settings\<username>\My Documents\My Videos | Users\<username>\Videos |
ユーザーごとのアプリケーション データ フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Documents and Settings\<username>\Local Settings | Users\<username>\AppData\Local |
| Documents and Settings\<username>\Local Settings\Application Data | Users\<username>\AppData\Local |
| Documents and Settings\<username>\Local Settings\Temporary Internet Files | Users\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files |
| Documents and Settings\<username>\Local Settings\History | Users\<username>\AppData\Local\Microsoft\Windows\History |
| Documents and Settings\<username>\Application Data | Users\<username>\AppData\Roaming |
ユーザーごとの OS 設定フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Documents and Settings\<username>\Cookies | Users\<username>\AppData\Roaming\Microsoft\Windows\Cookies |
| Documents and Settings\<username>\Recent | Users\<username>\AppData\Roaming\Microsoft\Windows\Recent |
| Documents and Settings\<username>\Nethood | Users\<username>\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| Documents and Settings\<username>\Printhood | Users\<username>\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Documents and Settings\<username>\SendTo | Users\<username>\AppData\Roaming\Microsoft\Windows\Send To |
| Documents and Settings\<username>\スタート メニュー | Users\<username>\AppData\Roaming\Microsoft\Windows\StartMenu |
| Documents and Settings\<username>\Templates | Users\<username>\AppData\Roaming\Microsoft\Windows\Templates |
All Users フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Users\All Users | ProgramData |
Default User フォルダーの接合点
| 接合点の位置 | リダイレクト先 |
| Documents and Settings\Default User | Users\Default |
| Documents and Settings\Default User\Desktop | Users\Default\Desktop |
| Documents and Settings\Default User\My Documents | Users\Default\Documents |
| Documents and Settings\Default User\Favorites | Users\Default\Favorites |
| Documents and Settings\Default User\My Documents\My Music | Users\Default\Music |
| Documents and Settings\Default User\My Documents\My Pictures | Users\Default\Pictures |
| Documents and Settings\Default User\My Documents\My Videos | Users\Default\Videos |
| Documents and Settings\Default User\Application Data\ | Users\Default\AppData\Roaming |
| Documents and Settings\Default User\Start Menu\ | Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu |
| Documents and Settings\Default User\Templates\ | Users\Default\AppData\Roaming\Microsoft\Windows\Templates |
ページのトップへ
環境変数の変更点
フォルダーの構造が変更されたことに伴い、環境変数も追加・変更されています。
新規に追加された環境変数は、Windows Vista 以降の Windows をターゲットにするときにのみ使用します。つまり、Windows Vista や Windows 7 で追加された環境変数は、Windows XP では認識されずエラーが発生してしまいます。
新しい環境変数
| 環境変数 | 値 |
| %AppData% | AppData\Roaming |
| %LocalAppData% | AppData\Local |
| %ProgramData% | ProgramData |
| %Public% | Public |
パスが変更された環境変数
| 環境変数 | 値 |
| %AllUsersProfile% | ProgramData |
| %Temp% または %TMP% | AppData\Local\Temp |
| %UserProfile% | Users\<username> |
変更されない環境変数
| 環境変数 | 値 |
| %CommonProgramFiles% | Program Files\Common Files |
| %ProgramFiles% | Program Files |
| %WinDir% | Windows |
ページのトップへ
リソース管理への対応
適切なリソースを使用する
フォルダーやレジストリにアクセスするときには、適切なフォルダーを選択する必要があります。標準ユーザーには Program Files フォルダーなどへの書き込み権がありません。そのため、これらのフォルダーにアプリケーションから一時的に利用するファイルを追加していると、エラーが起こってしまいます。実行に必要な情報は、できるだけユーザーごと、つまり「Users\<username>」などに保存するようにします。
なお、推奨される保存先の一覧を以下に示します。
マシン全体のデータの保存先
すべてのユーザーに共通する設定などを保存するときに使います。ただし、既定ではこれらのフォルダーへの書き込み権は、標準ユーザーにはありません。管理者権限でのアクセスが必要となるため、インストール時などに設定を保存するようにします。
| プログラムファイル | %ProgramFiles% |
| システムファイル | %WinDir% |
| 共有データ | %ProgramData% (%AllUsersProfile%) |
| レジストリ | HKLM |
ユーザーごとのデータの保存先
各ユーザーに関する設定を保存するときに使います。これらのフォルダーへの書き込み権は、標準ユーザーにあります。そのため、ユーザーがアプリケーションを実行している時に書き込みが可能です。
| ユーザーのファイルの保存先 | ドキュメント フォルダーなど |
| ローミングなしのデータ | %LocalAppData% |
| ローミングありのデータ | %AppData% |
| レジストリ | HKCU |
適切な API を使用する
リソースへのアクセスは、ハードコードしないようにし、SHGetFolderPath() などの適切な関数を使用するようにします。関数などの詳細は、「3.3 ファイルやフォルダー パスの取得」を参照してください。