c++ - 在 Windows 上从 SYSTEM 服务获取用户文档文件夹。 C++

标签 c++ winapi

我正在使用 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/

相关文章:

c++ - 我如何打开这个应用程序是 visual studio 以便我可以运行代码?

c++ - 球体体积计算错误,但公式正确

c++ - 来自 C++ 的 Web 自动化

c++ - 如何找到激活时打开给定 HMENU 的菜单项(如果有)?

c++ - 在对话框中以编程方式更改 Tab 键顺序的其他方法

c++ - 如何向 rijndael.h 添加 PKCS7 填充?

c++ - 在c++中相对保存文件

perl - 如何在 Perl 中检查 .exe 或 .dll 的数字签名?

c++ - 从资源加载 png 文件(无需 MFC、ATL)

c - SetWindowPos 在 64 位 Windows 中编译错误