Skip to main content

アプリケーション開発者向け Microsoft® Windows 7 対応アプリケーションの互換性

更新日: 2010 年 7 月 27 日

Word 文書 Windows7_Compatibility.docx (Word 形式、5.62 MB)

免責

このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマイクロソフトの見解を反映したものです。マイクロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任をマイクロソフトは問われないものとします。

このホワイト ペーパーに記載された内容は情報提供のみを目的としており、明示、黙示、または法令に基づく規定に関わらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。

この文書およびソフトウェアを使用する場合は、適用されるすべての著作権関連の法律に従っていただくものとします。著作権法による制限に関係なく、マイクロソフトの書面による許可なしに、この文書の一部または全部を複製したり、検索システムに保存または登録したり、別の形式に変換したりすることは、手段、目的を問わず禁じられています。ここでいう手段とは、複写や記録など、電子的、または物理的なすべての手段を含みます。

マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の知的所有権を有する場合があります。マイクロソフトから提供される使用許諾書に明記されていない限り、この文書の配布によりこれらの特許、商標、著作権、またはその他の知的財産権がお客様に譲渡されることはありません。

2009 Microsoft Corporation.All rights reserved.

Microsoft、Windows 7™は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

この文書およびソフトウェアで使用されている実在の会社名および製品名は、該当各社の商標です。

このドキュメントは、Windows 7 RTM 版における情報をもとに構成しています。仕様および機能は変更される可能性があります。

4.1 リソースの管理

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

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

フォルダー構造の変更点

Windows Vista と Windows 7 では、ユーザー データやアプリケーション データを格納するためのフォルダーの構造が大幅に変更されました。おもな変更点は、以下の通りです。

項目Windows XPWindows Vista/7
ユーザー プロファイルのルート フォルダー名を変更Documents and SettingsUsers
ユーザーごとのアプリケーション データ (ローミングあり/なし) を一元化<username>\Application Data
<username>\LocalSettings\Application Data
<username>\AppData
ユーザーごとのアプリケーション データ フォルダーの場所を変更<username>\Application Data<username>\AppData\Roaming
<username>\Local Settings\Application Data<username>\AppData\Local
All Users プロファイルのフォルダー名を変更All UsersPublic
All Users プロファイルのアプリケーション データ フォルダーの場所を変更All Users\Application DataC:\ProgramData
ごみ箱を各ユーザー プロファイル フォルダーへ作成X:Recycler\<SID>Users\<username>\$Recycle.bin

ディレクトリの接合ポイント

フォルダー構造が変更されると、既存アプリケーションが正しくフォルダーにアクセスできないために、動作しない可能性がでてきます。そこで、救済策として「接合点」が用意されています。つまり、変更前のフォルダーの位置には、接合点が用意されていて、アプリケーションが以前のフォルダーやファイルへの書き込みアクセスを試みると、新しいフォルダーへリダイレクトされます。たとえば、「C:\Documents and Settings」は「C:\Users」を示す接合点として設定されています。

接合点は、System 属性が設定され、ACL は「Everyone 読み取り拒否」に設定されています。そのため、既定ではエクスプローラーには表示されません。しかし、コマンド プロンプトで「dir /AL」を実行すると表示することができます。図 4-1 は「dir /AL」の実行結果です。接合点は「JUNCTION」と表示されており、リダイレクト先も表示されています。

図 4-1: dir/AL の実行

図 4-1: dir/AL の実行

Note: dir/AL とは

dir コマンドで、/A オプションを指定すると、さまざまな属性のファイルを表示することができます。中でも、「L」オプションは、再解析ポイント (接合点) を表示するために使用します。

接合点が作成されているパスと、リダイレクト先は、次の通りです。

ユーザーのデータ フォルダーの接合点
接合点の位置リダイレクト先
Documents and SettingsUsers
ユーザーごとのデータ フォルダーの接合点
接合点の位置リダイレクト先
Documents and Settings\<username>\My DocumentsUsers\<username>\Documents
Documents and Settings\<username>\My Documents\My MusicUsers\<username>\Music
Documents and Settings\<username>\My Documents\My PicturesUsers\<username>\Pictures
Documents and Settings\<username>\My Documents\My VideosUsers\<username>\Videos
ユーザーごとのアプリケーション データ フォルダーの接合点
接合点の位置リダイレクト先
Documents and Settings\<username>\Local SettingsUsers\<username>\AppData\Local
Documents and Settings\<username>\Local Settings\Application DataUsers\<username>\AppData\Local
Documents and Settings\<username>\Local Settings\Temporary Internet FilesUsers\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files
Documents and Settings\<username>\Local Settings\HistoryUsers\<username>\AppData\Local\Microsoft\Windows\History
Documents and Settings\<username>\Application DataUsers\<username>\AppData\Roaming
ユーザーごとの OS 設定フォルダーの接合点
接合点の位置リダイレクト先
Documents and Settings\<username>\CookiesUsers\<username>\AppData\Roaming\Microsoft\Windows\Cookies
Documents and Settings\<username>\RecentUsers\<username>\AppData\Roaming\Microsoft\Windows\Recent
Documents and Settings\<username>\NethoodUsers\<username>\AppData\Roaming\Microsoft\Windows\Network Shortcuts
Documents and Settings\<username>\PrinthoodUsers\<username>\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
Documents and Settings\<username>\SendToUsers\<username>\AppData\Roaming\Microsoft\Windows\Send To
Documents and Settings\<username>\スタート メニューUsers\<username>\AppData\Roaming\Microsoft\Windows\StartMenu
Documents and Settings\<username>\TemplatesUsers\<username>\AppData\Roaming\Microsoft\Windows\Templates
All Users フォルダーの接合点
接合点の位置リダイレクト先
Users\All UsersProgramData
Default User フォルダーの接合点
接合点の位置リダイレクト先
Documents and Settings\Default UserUsers\Default
Documents and Settings\Default User\DesktopUsers\Default\Desktop
Documents and Settings\Default User\My DocumentsUsers\Default\Documents
Documents and Settings\Default User\FavoritesUsers\Default\Favorites
Documents and Settings\Default User\My Documents\My MusicUsers\Default\Music
Documents and Settings\Default User\My Documents\My PicturesUsers\Default\Pictures
Documents and Settings\Default User\My Documents\My VideosUsers\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>」などに保存するようにします。

なお、推奨される保存先の一覧を以下に示します。

Note:

「標準ユーザー」に関しては、 「4.3 ユーザー アカウント制御 (UAC: User Account Control)」を参照してください。

マシン全体のデータの保存先

すべてのユーザーに共通する設定などを保存するときに使います。ただし、既定ではこれらのフォルダーへの書き込み権は、標準ユーザーにはありません。管理者権限でのアクセスが必要となるため、インストール時などに設定を保存するようにします。

プログラムファイル%ProgramFiles%
システムファイル%WinDir%
共有データ%ProgramData%
(%AllUsersProfile%)
レジストリHKLM
ユーザーごとのデータの保存先

各ユーザーに関する設定を保存するときに使います。これらのフォルダーへの書き込み権は、標準ユーザーにあります。そのため、ユーザーがアプリケーションを実行している時に書き込みが可能です。

ユーザーのファイルの保存先ドキュメント フォルダーなど
ローミングなしのデータ%LocalAppData%
ローミングありのデータ%AppData%
レジストリHKCU
適切な API を使用する

リソースへのアクセスは、ハードコードしないようにし、SHGetFolderPath() などの適切な関数を使用するようにします。関数などの詳細は、 「3.3 ファイルやフォルダー パスの取得」を参照してください。

ページのトップへ

評価してください: