在系统启动时从注册表读取文件[c++]

Reading file on system startup from registry [C++]

本文关键字:文件 c++ 读取 注册表 系统启动      更新时间:2023-10-16

我希望我的程序读取配置文件,这是右边的"exe"文件。这工作正常,但是当程序从注册表(HKEY_CURRENT_USER)中的运行文件夹系统启动时,它根本无法读取文件。exe文件和配置文件在"Program Files(x86)"的一个文件夹中。下面是程序启动时的一段代码:

    TCHAR szPath[MAX_PATH];
    GetCurrentDirectory(MAX_PATH, szPath);
    char filepath[MAX_PATH];
    sprintf(filepath, "%s%s", szPath, "\data.cfg");
    if(!(file = fopen(filepath, "rt")))
    {
        MessageBox(hwnd, "Could not load config file", "ERROR", MB_OK);
    }
    else
    {
        fgets(ReadLine, 20, file);
        sscanf(ReadLine, "#KEYSTROKE %s", &ReadChar);
        fgets(ReadLine2, 20, file);
        sscanf(ReadLine2, "#STARTUP %s", &ReadChar2);
        fgets(ReadLine3, 20, file);
        sscanf(ReadLine3, "#CTRL %s", &ReadChar3);
        fclose(file);
    }

任何帮助都会很感激。

您应该使用GetModuleFileName()并从中提取文件夹信息