获取环境变量 - RegistryGetEnvironmentVariable
函数简介
获取环境变量的值,支持读取用户级和系统级环境变量。
接口名称
RegistryGetEnvironmentVariable
DLL调用
int64_t RegistryGetEnvironmentVariable(int64_t instance, const char* name, int32_t systemWide)
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。name(字符串): 环境变量名称systemWide(整型数): 是否从系统级环境变量读取- 1: 系统级
- 0: 当前用户级
示例:
// 创建OLA对象
int64_t instance = CreateCOLAPlugInterFace();
// 获取用户级环境变量
int64_t valuePtr = RegistryGetEnvironmentVariable(instance, "OLA_HOME", 0);
if (valuePtr != 0) {
printf("OLA_HOME: %s\n", (const char*)valuePtr);
FreeStringPtr(instance, valuePtr);
} else {
printf("OLA_HOME环境变量不存在\n");
}
// 获取系统级PATH
valuePtr = RegistryGetEnvironmentVariable(instance, "PATH", 1);
if (valuePtr != 0) {
printf("系统PATH: %s\n", (const char*)valuePtr);
FreeStringPtr(instance, valuePtr);
}
// 获取常见系统环境变量
const char* commonVars[] = {"TEMP", "TMP", "USERPROFILE", "SYSTEMROOT"};
for (int i = 0; i < 4; i++) {
valuePtr = RegistryGetEnvironmentVariable(instance, commonVars[i], 0);
if (valuePtr != 0) {
printf("%s: %s\n", commonVars[i], (const char*)valuePtr);
FreeStringPtr(instance, valuePtr);
}
}
// 释放资源
DestroyCOLAPlugInterFace(instance);
返回值
长整型数:
- 成功: 返回环境变量值的字符串句柄
- 失败或不存在: 返回 0
注意事项
- 返回的字符串句柄需使用 FreeStringPtr 释放
- 环境变量名称不区分大小写
- 系统级环境变量存储在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
- 用户级环境变量存储在 HKEY_CURRENT_USER\Environment
- 返回 0 表示环境变量不存在或读取失败
