SHGetKnownFolderPath的任何替代品都带有Windows XP的用户令牌?

时间:2014-02-26 23:29:18

标签: c++ c winapi windows-xp known-folders

我的软件仍然需要支持Windows XP。在其中,我从Windows服务调用SHGetKnownFolderPath API以获取FOLDERID_Desktop之前的用户特定路径(例如hToken)。由于XP不支持该API,我很好奇是否有其他方法可以在该操作系统上执行此操作?

1 个答案:

答案 0 :(得分:2)

使用的正确功能是SHGetFolderLocation,通过NULL-1作为访问令牌:

  

hToken [in]

     

键入:HANDLE

     

可用于表示特定用户的访问令牌。它通常设置为NULL,但有时可能需要它   对于那些被视为属于a的文件夹的多个用户   单个用户。这种类型最常用的文件夹是My   文档。调用应用程序负责正确   当hTok​​en为非NULL时进行模拟。它必须有适当的   特定用户和用户注册表的安全权限   必须安装蜂巢。请参阅访问控制   讨论访问控制问题。

     

为hToken参数指定值-1表示默认用户。这允许SHGetFolderLocation的客户端查找文件夹   默认用户的位置(例如“桌面”文件夹)。该   任何新用户帐户都是重复的默认用户用户配置文件   创建,并包括特殊文件夹,如我的文档和   桌面。添加到“默认用户”文件夹中的任何项目也会显示在任何项   新用户帐户。