【发布时间】:2012-12-29 23:41:15
【问题描述】:
我似乎找不到 Windows XP 的“C:\Documents and Settings\username”文件夹的 CSIDL 常量是什么?
编辑:我正在使用以下代码检索此路径:
HANDLE hUserToken = NULL;
if(WTSQueryUserToken(dwUserSessionID, &hUserToken))
{
PIDLIST_ABSOLUTE pIdl = NULL;
if(SHGetFolderLocation(NULL, nCSIDL, hUserToken, NULL, &pIdl) == S_OK)
{
SHGetPathFromIDList(pIdl, path_buf);
ILFree(pIdl);
}
CloseHandle(hUserToken);
}
问题在于,当我期待 C:\Documents and Settings\Administrator 时,代码会为管理帐户返回 C:\WINDOWS\system32\config\systemprofile。
【问题讨论】:
-
@K-ballo:好的。我自己发现了。但是我应该使用哪个常量?
-
另一个函数是GetUserProfileDirectory,但我希望它返回相同的结果。
-
@Luke:啊哈!你有我的朋友!谢谢。您想将其发布为答案吗?它实际上返回了预期的结果。显然这就是他们引入该 API 的原因。
标签: c++ winapi windows-xp windows-shell