有任何替代SHGetKnownFolderPath的Windows XP用户令牌的方案吗

Any alternatives to SHGetKnownFolderPath with user token for Windows XP?

本文关键字:用户 令牌 方案 XP Windows 任何替 SHGetKnownFolderPath      更新时间:2023-10-16

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

要使用的正确函数是SHGetFolderLocation,传递NULL-1作为访问令牌:

hToken[in]

类型:HANDLE

可用于表示特定用户的访问令牌。它通常设置为NULL,但当存在被视为属于的文件夹的多个用户单个用户。这种类型最常用的文件夹是"我的"文件。调用应用程序负责更正hToken为非NULL时的模拟。它必须具有适当的特定用户的安全权限,以及用户的注册表当前必须装载配置单元。请参阅访问控制以了解更多信息访问控制问题的讨论。

将hToken参数赋值为-1表示默认用户。这允许SHGetFolderLocation的客户端查找文件夹默认用户的位置(如Desktop文件夹)。这个当任何新用户帐户创建,并包括特殊文件夹,如"我的文档"和桌面添加到默认用户文件夹的任何项目也显示在新用户帐户。