Domanda

Esiste un'API Win32 / MFC per ottenere CSIDL_LOCAL_APPDATA per qualsiasi utente che desidero (non solo quello attualmente connesso)? Supponiamo di avere un elenco di utenti nel formato " dominio \ utente " e voglio ottenere un elenco dei loro percorsi - è possibile?

È stato utile?

Soluzione

È possibile ottenere il SID per l'utente e quindi cercarlo in HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList e ottenere il valore ProfileImagePath.

Una volta che hai questo percorso, puoi ottenere CLSID_LOCAL_APPDATA per il tuo utente, convertire il percorso assoluto in un percorso relativo al tuo profilo e quindi aggiungere quel percorso relativo all'altro percorso del profilo utente.

Tuttavia, tieni presente che questo si basa su una chiave di registro non documentata e può rompersi nelle versioni future del sistema operativo. (O, come direbbe Raymond Chan: " Ora che sai come farlo, lascia che ti dica perché non dovresti farlo in questo modo ... " :-))

Se si dispone di un token che rappresenta l'utente, è possibile utilizzare SHGetFolderPath o SHGetKnownFolderPath (su Vista e versioni successive). Tuttavia, ci sono alcune restrizioni di sicurezza e dovresti leggere su MSDN per i dettagli.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top