我正在使用 winApi c++ 创建 Windows 服务。 该服务由 SYSTEM 用户开始工作。如何获取当前用户文档文件夹?
我知道方法
TCHAR DocumentsPath[MAX_PATH];
SHGetSpecialFolderPath(NULL, DocumentsPath, CSIDL_PERSONAL, TRUE);
但是,它返回其他文件夹,因为服务是从 SYSTEM 工作的。
有什么解决办法吗?
最佳答案
谢谢你 RbMm。
它工作正常:
ULONG SessionId = WTSGetActiveConsoleSessionId();
if (SessionId != MAXDWORD)
{
HANDLE hToken;
if(WTSQueryUserToken(SessionId, &hToken))
{
WCHAR DocumentsPath[MAX_PATH];
SHGetFolderPath(0, CSIDL_PERSONAL, hToken, SHGFP_TYPE_CURRENT, DocumentsPath);
CloseHandle(hToken);
}
}
关于c++ - 在 Windows 上从 SYSTEM 服务获取用户文档文件夹。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225859/