如何从服务获取用户帐户的Windows特殊路径

时间:2009-09-30 13:55:53

标签: c++ winapi service

我希望能够为用户帐户检索Windows“特殊路径”(例如临时文件夹,桌面),但是要从服务中检索。

我知道正常的方法是使用SHGetFolderPath和适当的CSIDL作为文件夹类型。有没有办法为每个用户提供这种类型的信息,而服务不必依次登录每个用户?

1 个答案:

答案 0 :(得分:1)

我不是这方面的专家,但似乎你可以使用hToken SHGetFolderPath参数来传递另一个用户的令牌。我认为您可以使用impersonation创建此类令牌。

如果不起作用:这些文件夹位于HKEY_USERS/<user's-sid>/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders下的注册表中。 this question中解释了如何获取SID。它在C#中,但我认为它在C ++中实际上会更容易。