特定のユーザーのローカル アプリケーション データ フォルダーを取得する良い方法を探しています。そのユーザーのログインの詳細を入力する必要はありません。
SHGetFolderPath()は、ローカル appdata フォルダーを取得するユーザーのアクセス トークンを受け入れることができますが、アクセス トークンを取得するには、ユーザーのパスワードを提供する必要があります。また、ドキュメントによると、これは <= Windows 2000 ではサポートされていません。
レジストリ キーHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell フォルダーには、現在のユーザーのローカル appdata フォルダーの場所を含む AppData 値が含まれています...したがって、特定のユーザーの HKCU ハイブを技術的にマウントできます。この値にアクセスします。ただし、Microsoft はこのキーの使用を強く推奨していないようで、不正確な場合もあると聞いています。
皮肉なことに、Windows では、Explorer を開いて正しい場所を参照するだけで、管理者アカウントは任意のユーザーの appdata フォルダー内のすべてのデータに簡単にアクセスして変更できますが、簡単な方法はないようです。特定のユーザーの appdata フォルダーの場所をプログラムで取得します。
他に選択肢はありますか?現時点では、レジストリへのアクセス (gasp) が最良の選択肢のように思えますが、可能であれば、Microsoft によって推奨されていない公式のものを使用したいと考えています。
任意の提案をいただければ幸いです。