Question

Existe-t-il une API Win32 / MFC pour obtenir le CSIDL_LOCAL_APPDATA pour tout utilisateur que je souhaite (et pas uniquement pour l'utilisateur actuellement connecté)? Disons que j'ai une liste d'utilisateurs sous la forme " domaine \ utilisateur " et je veux obtenir une liste de leurs chemins - est-ce possible?

Était-ce utile?

La solution

Vous pouvez obtenir le SID de l'utilisateur, puis le rechercher sous HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList et obtenir la valeur ProfileImagePath.

Une fois que vous avez ce chemin, vous pouvez obtenir CLSID_LOCAL_APPDATA pour votre utilisateur, convertir le chemin absolu en chemin relatif à votre profil, puis ajouter ce chemin relatif à l'autre chemin du profil de l'utilisateur.

Toutefois, gardez à l’esprit que cela repose sur une clé de registre non documentée et que cela risque de se produire dans les futures versions du système d’exploitation. (Ou, comme dirait Raymond Chan: "Maintenant que vous savez comment le faire, laissez-moi vous dire pourquoi vous ne devriez pas le faire de cette façon ...":))

Si vous avez un jeton représentant l'utilisateur, vous pouvez utiliser SHGetFolderPath ou SHGetKnownFolderPath (à partir de Vista). Toutefois, il existe certaines restrictions de sécurité et vous devez consulter MSDN pour plus de détails.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top