Pergunta

Existe alguma API Win32/MFC para obter a CSIDL_LOCAL_APPDATA por algum Usuário que eu quero (não apenas o atualmente conectado em um)? Digamos que eu tenha uma lista de usuários no formulário "Domain User" e quero obter uma lista de seus caminhos - isso é possível?

Foi útil?

Solução

Você pode obter o SID para o usuário e, em seguida, procurá -lo em HKLM Software Microsoft Windows NT CurrentVersion Profilelist e obter o valor do ProfileImagePath.

Depois de ter esse caminho, você pode obter clsid_local_appdata para o seu usuário, converter o caminho absoluto em um caminho relativo para o seu perfil e depois anexar esse caminho relativo ao outro caminho do perfil do usuário.

No entanto, lembre -se de que isso depende de uma chave de registro sem documentos e pode quebrar em versões futuras do sistema operacional. (Ou, como Raymond Chan diria: "Agora que você sabe como fazer, deixe-me dizer por que você não deveria fazer dessa maneira ..." :-))

Se você possui um token representando o usuário, pode usar o shgetfolderpath ou o shgetknownflowerpath (no vista e up). No entanto, existem certas restrições de segurança e você deve ler no MSDN para obter detalhes.

Shgetfolderpath - http://msdn.microsoft.com/en-us/library/bb762181(vs.85).aspxShgetknownfolderpath - http://msdn.microsoft.com/en-us/library/bb762188(vs.85).aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top