Fre*_*man 12
请不要进入注册表以查找此信息.在将来的Windows版本中,该位置可能会更改.请改用SHGetFolderPath.
http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
编辑:看起来LogonUser将为您需要的其他用户提供令牌.
我将安装用户的注册表配置单元并查找路径值。是的,出于所有提到的原因(向前兼容性差等),这是一个次优的解决方案。然而,与 Windows 中的许多其他功能一样,MS 没有提供 API 方式来完成您想做的事情,因此它是可用的最佳选择。
您可以使用LookupAccountName获取用户的 SID(而非 GUID)。您可以使用LoadUserProfile加载用户的注册表配置单元,但不幸的是,这还需要用户令牌,这将需要他们的密码。幸运的是,您可以使用RegLoadKey手动将配置单元加载到任意位置,读取数据,然后卸载它(我认为)。
是的,这很痛苦,而且是的,它可能会在未来版本的 Windows 中崩溃。也许到那时微软会提供一个 API 来做到这一点,将其向后移植到旧版本的 Windows 中,并通过 Windows 更新自动分发......但我不会屏住呼吸。
PS 此信息旨在补充您的相关问题中提供的信息,包括免责声明。