我正在使用SHGetFolderPath CSIDL_APPDATA获取当前用户帐户下的应用程序数据文件夹的路径。它工作正常,但如果从安装程序调用它,Windows会将其更改为管理员的文件夹!如何从安装程序获取当前用户的数据文件夹?
答案 0 :(得分:1)
SHGetFolderPath()有一个hToken
参数。如果hToken
为NULL,则该函数使用与调用线程关联的访问令牌。否则,可以将其设置为另一个用户帐户的访问令牌。
如果安装程序以管理员身份提升,则安装程序必须:
在致电SHGetFolderPath()
之前模拟所需的用户帐户。
获取所需用户帐户的访问令牌,并将其传递给hToken
。