c – 如何获取特定用户的Windows“特殊文件夹”的路径?

在服务中,为特定用户确定特殊文件夹路径(例如“我的文档”)的最佳方法是什么? SHGetFolderPath允许您传入令牌,因此我假设有一些方法可以模拟您感兴趣的文件夹的用户.

有没有办法只根据用户名执行此操作?如果没有,用户帐户所需的最小信息量是多少?我宁愿不必要求用户的密码.

(这是一个related question.)

解决方法

我将挂载用户的注册表配置单元并查找路径值.是的,由于提到的所有原因(前向兼容性差等),这是次优解决方案.但是,与Windows中的许多其他内容一样,MS没有提供API方法来执行您想要的操作,因此它是最佳选择.

您可以使用LookupAccountName获取用户的SID(而不是GUID).您可以使用LoadUserProfile加载用户的注册表配置单元,但不幸的是,这还需要一个用户令牌,这将需要他们的密码.幸运的是,您可以使用RegLoadKey手动将配置单元加载到任意位置,读取数据并卸载它(我认为).

是的,这是一个痛苦,是的,它可能会在未来的Windows版本中破裂.也许到那时MS将提供一个API来实现它,将其反向移植到旧版本的Windows中,并通过Windows更新自动分发……但我不会屏住呼吸.

附:此信息旨在增强您相关问题中提供的信息,包括免责声明.

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...