4

(現在ログオンしているユーザーだけでなく)必要CSIDL_LOCAL_APPDATAユーザー用に取得するWin32 / MFC APIはありますか?「domain\user」という形式のユーザーのリストがあり、そのパスのリストを取得したいとします。それは可能ですか?

4

1 に答える 1

6

ユーザーのSIDを取得し、HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileListで検索して、ProfileImagePath値を取得できます。

このパスを取得したら、ユーザーのCLSID_LOCAL_APPDATAを取得し、絶対パスをプロファイルへの相対パスに変換してから、その相対パスを他のユーザープロファイルパスに追加できます。

ただし、これは文書化されていないレジストリキーに依存しており、OSの将来のバージョンで機能しなくなる可能性があることに注意してください。(または、レイモンド・チャンが言うように、「これで、それを行う方法がわかったので、なぜこのようにすべきではないのかを教えてください...」:-))

ユーザーを表すトークンがある場合は、SHGetFolderPathまたはSHGetKnownFolderPath(Vista以降)を使用できます。ただし、特定のセキュリティ制限があり、詳細については、MSDNを参照してください。

SHGetFolderPath- http: //msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx SHGetKnownFolderPath-http: //msdn.microsoft.com/en-us/library/bb762188(VS.85 ) .aspx

于 2008-09-25T06:35:08.927 に答える