是否有任何Win32 / MFC API可以获取我想要的任何用户CSIDL_LOCAL_APPDATA
(不仅是当前登录的用户)?假设我有“域\用户”形式的用户列表,我想获得他们的路径列表 - 这可能吗?
答案 0 :(得分:5)
您可以获取该用户的SID,然后在HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList下查找并获取ProfileImagePath值。
获得此路径后,您可以为您的用户获取CLSID_LOCAL_APPDATA,将绝对路径转换为您的配置文件的相对路径,然后将该相对路径附加到其他用户配置文件路径。
但是,请记住,这依赖于未记录的注册表项,并且可能会在操作系统的未来版本中出现问题。 (或者,正如Raymond Chan所说:“既然你知道该怎么做,那就告诉你为什么你不应该这样做......”: - ))
如果您有代表用户的令牌,则可以使用SHGetFolderPath或SHGetKnownFolderPath(在Vista及更高版本上)。但是,存在某些安全限制,您应该在MSDN上阅读以获取详细信息。
SHGetFolderPath - http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx SHGetKnownFolderPath - http://msdn.microsoft.com/en-us/library/bb762188(VS.85).aspx