Frage

Gibt es eine Win32 / MFC-API die CSIDL_LOCAL_APPDATA für jede Benutzer, die ich will (nicht nur die aktuell angemeldeten eins) zu bekommen? Lassen Sie uns sagen, ich habe eine Liste der Benutzer in der Form „Domäne \ Benutzer“ und ich möchte eine Liste ihrer Wege bekommen - ist das möglich

War es hilfreich?

Lösung

Sie können den SID für den Benutzer erhalten und es dann unter HKLM \ SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ Profilen nachschlagen und den ProfileImagePath Wert.

Wenn Sie diesen Pfad haben, können Sie CLSID_LOCAL_APPDATA für Ihre Benutzer, konvertieren Sie den absoluten Pfad zu einem relativen Pfad zu Ihrem Profil erhalten und dann diesen relativen Pfad zu dem anderen Benutzerprofilpfad anhängen.

Doch bedenken Sie, dass diese auf einem undokumentierten Registry-Schlüssel setzen und können in zukünftigen Versionen des OS brechen. (Oder, wie Raymond Chan würde sagen: „Nun, da Sie wissen, wie es zu tun, lassen Sie mich Ihnen sagen, warum sollte man es auf diese Weise nicht tun ...“: -))

Wenn Sie einen Token, die die Benutzer haben, können Sie die SHGetFolderPath oder SHGetKnownFolderPath (auf Vista und höher) verwenden. Allerdings gibt es bestimmte Sicherheitsbeschränkungen und Sie sollten für weitere Einzelheiten auf MSDN nachlesen.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top