是否有任何的Win32/MFC API来获取CSIDL_LOCAL_APPDATA
对于任何我想要的(不仅是当前登录的一个)的用户?假设我有"域\用户"形式的用户列表,我想获得他们的路径列表 - 这可能吗?
您可以获取用户的SID,然后在HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList下查找并获取ProfileImagePath值.
获得此路径后,您可以为您的用户获取CLSID_LOCAL_APPDATA,将绝对路径转换为您的配置文件的相对路径,然后将该相对路径附加到其他用户配置文件路径.
但是,请记住,这依赖于未记录的注册表项,并且可能会在操作系统的未来版本中出现问题.(或者,正如雷蒙德·陈所说的那样:"既然你知道该怎么做,就让我告诉你为什么你不应该这样做......":-))
如果您有代表用户的令牌,则可以使用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