Visual c++ 程序作为服务运行时获取文件夹的路径

Visual c++ 程序作为服务运行时获取文件夹的路径,visual-c++,service,Visual C++,Service,我有一个可执行文件,它将在windows中作为服务运行。由于该服务作为本地系统运行,所以我应该在哪个文件夹中写入程序使用的任何数据。目前,我使用%LocalAppData%,但当exe作为服务运行时,它会指向我 C:\Windows\System32\config\systemprofile\AppData 我使用了以下代码: std::string GetLocalAppDataPath() { HANDLE hfile; TCHAR szPath[MAX_PATH];

我有一个可执行文件,它将在windows中作为服务运行。由于该服务作为本地系统运行,所以我应该在哪个文件夹中写入程序使用的任何数据。目前,我使用%LocalAppData%,但当exe作为服务运行时,它会指向我

C:\Windows\System32\config\systemprofile\AppData
我使用了以下代码:

std::string GetLocalAppDataPath()
{
    HANDLE hfile;
    TCHAR szPath[MAX_PATH];
    if(SUCCEEDED(SHGetFolderPath(NULL,CSIDL_LOCAL_APPDATA,NULL,0, szPath))) 
    {
        std::string path = boost::lexical_cast<std::string>(szPath);
        boost::replace_all(path, "\\", "\\\\");
        return path;
    }
}
我得到的是C:\WINDOWS\system32\config\systemprofile\AppData\Local\lpa\output\,而不是我自己的本地应用程序数据文件夹。所以我应该使用LocalSystem可以访问的其他文件夹吗?

您是否尝试过以下方法:
我用C++来处理EXE
std::string app_data_path = GetLocalAppDataPath();
std::string log_folder_path = app_data_path + "\\\\lpa\\\\output\\\\";