获取CSIDL_LOCAL_APPDATA路径在Windows上的任何用户(Get CSIDL_LO

2019-07-03 11:55发布

是否有任何的Win32 / MFC API来获取CSIDL_LOCAL_APPDATA的,我想(不仅是当前登录的一个) 的任何用户? 比方说,我有形式为“域\用户”的用户列表,我希望得到他们的路径列表 - 这可能吗?

Answer 1:

你可以得到用户的SID,然后看看它在HKLM \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \ ProfileList文件,并得到ProfileImagePath值。

一旦你有了这条路,你可以得到CLSID_LOCAL_APPDATA您的用户,绝对路径转换为相对路径至您的个人资料,然后附加到其他用户配置文件路径的相对路径。

但是,请记住,这是依靠一个无证的注册表项,并可以在OS的未来版本打破。 (或者,如陈旭明会说:“现在你知道如何做到这一点,让我告诉你为什么你不应该做这种方式......” :-))

如果你有一个令牌代表用户,可以使用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



文章来源: Get CSIDL_LOCAL_APPDATA path for any user on Windows