私のアプリケーションでは、既知の予測可能な場所に「グローバル」(つまり、ユーザー固有ではない) の設定を保存する必要があります。
アプリケーションをどこからでも (管理者ではなく標準ユーザーとして) 実行できるようにしたいと考えています。これには、さまざまな場所からの複数のコピーが含まれ、保存された構成ファイルの読み取りと書き込みが可能です。
データには、1 人だけでなく、すべての標準ユーザーに読み取りおよび書き込みアクセス権を付与する必要があります。
それを念頭に置いて、ここに記載されている 4 つのオプションは不適切です: http://msdn.microsoft.com/en-us/library/bb206295(VS.85).aspx#ID0E1BA
では、私の代替手段は何ですか?
私のアプリケーションは C++ で書かれており、Windows 専用です。Windows XP 以降をサポートする必要があります。
ありがとう。
編集:
明確にするために、複数のインスタンスによって引き起こされる競合状態は無視してください。この質問は、データを保存する場所に関するものです。次のような適切な場所が見つかりません。
- 予測可能 (例: %APPDATA%\Foo は「予測可能な」パスですが、残念ながらユーザー固有です)
- グローバル (例: %PROGRAMDATA%\Foo はグローバル パスですが、残念ながら作成ユーザーのみが書き込みアクセス権を持っています)
- アクセス可能 (標準ユーザーは、指定されたディレクトリに新しいファイルを作成できる必要があります。これは、システム上のすべてのユーザーに適用されます)