В Свойствах системы Windows | Переменные среды, есть переменная "AppStatus=status1"
.Есть ли API для получения исходных значений переменных, определенных в ОС
Существует exe с именем MyApp.exe. В реализации он изменяет переменную с кодом.
int ret = putenv("AppStatus=status2"); // Change the environment variable.
Если использование API char * pStatus = getenv("AppStatus");
, возвращаемое значение "status2"
.
Что я хочу получить, это исходное значение, определенное в ОС ("AppStatus=status1"
), а не в блоке процесса. Для реализации этого я могу запросить ключ реестра
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment \ Path.
Но должно быть лучше, если есть API, который его поддерживает. Кто-нибудь знает об этом?
Вы должны пометить свой вопрос с помощью WinAPI (или Windows), и ответ будет специфичным для операционной системы (и на самом деле ваш вопрос, вероятно, не имеет смысла в Linux). Ваш вопрос больше связан с Windows, чем с C++. –
Можете ли вы изменить реализацию? Почему бы просто не сохранить значение «AppStatus» при запуске процесса отдельно? – vstm
Интересная информация [здесь] (http://stackoverflow.com/questions/631664/accessing-environment-variables-in-c) (не дублирует, а указывает на функции Win32 и различия между 'getenv' и родным эквивалентом Win32, и .Net-функция, которая делает то, что вы хотите, если используете .Net) – Mat