SHGetFolderPath在安装程序中使用时返回admin用户帐户的路径

时间:2014-07-18 10:23:22

标签: winapi installer special-folders

我正在使用SHGetFolderPath CSIDL_APPDATA获取当前用户帐户下的应用程序数据文件夹的路径。它工作正常,但如果从安装程序调用它,Windows会将其更改为管理员的文件夹!如何从安装程序获取当前用户的数据文件夹?

1 个答案:

答案 0 :(得分:1)

对于这种情况,

SHGetFolderPath()有一个hToken参数。如果hToken为NULL,则该函数使用与调用线程关联的访问令牌。否则,可以将其设置为另一个用户帐户的访问令牌。

如果安装程序以管理员身份提升,则安装程序必须:

  1. 在致电SHGetFolderPath()之前模拟所需的用户帐户。

  2. 获取所需用户帐户的访问令牌,并将其传递给hToken