Я пытаюсь установить переменную среды пользователя Windows, а затем запустить приложение с помощью командного файла или сценария. Однако для переменной среды не устанавливается соответствующее значение до тех пор, пока пользователь не выйдет из системы и снова не войдет в систему. (Я думаю, что более точным описанием будет то, что новое значение будет доступно приложению только после следующего входа в систему.)
Есть ли способ установить переменную в среде пользователя, чтобы она была доступна немедленно?
Я делаю это потому, что функциональными возможностями этой программы можно управлять с помощью переменных среды, и пользователям в разное время потребуются разные функции. Из-за ограничений лицензии мне нужно установить это динамически, если возможно.
Спасибо,
Грэм
Самый простой способ вообще не устанавливать переменную среды и запускать приложение из пакетного файла, который устанавливает переменную среды для этого сеанса. Только если переменная существует, она не вступит в силу до следующего входа в систему.
Где вы на самом деле устанавливаете переменную? Если вы устанавливаете его в свойствах системы, это повлияет только на новые сеансы оболочки, а не на существующие ... но на самом деле выход из системы / вход в систему не требуется.
Лучше всего установить переменную в том же командном файле, который запускает приложение.
Если вы являетесь администратором компьютера, вы можете добавить нужное значение в реестр. Затем запустите командный файл.
Это добавит переменную среды MYENVIRON со значением MYVALUE
reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v MYENVIRON / t REG_SZ / d MYVALUE / f