Как установить переменную окружения?

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Tima
Сообщения: 43
Зарегистрирован: 23 сен 2004, 10:17
Откуда: Харьков
Контактная информация:

Как установить переменную окружения?

Сообщение Tima » 18 фев 2005, 18:35

Как при помощи пакетника в текущем процессе установить переменную окружения? То бишь есть пакетный файл, в нем установка переменных окружения (при помощи set), его нужно запустить чтобы появились эти переменные окружения в этом процессе. ShellExecute не помогает.

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сообщение Romeo » 19 фев 2005, 19:31

Проблема в том, что в Windows, начиная с 2000 (на счёт ME не знаю) НЕВОЗМОЖНО установить переменную окружения с помощью пакетного файла. Дело в том, что при запуске эмуляции ДОС, а батник выполняется именно в эмуляции ДОС, сисема копирует все глобальные переменные окружения в локальные. После этого все команды set будут работать только с локальными копиями этих переменных и при закрытии сеанса эмуляции вся инфрмации о них будет уничтожена.

Для того, чтобы установить значение переменной окружения программно следует воспользоваться функцией setenvvar или что-то в этом духе (подробнее в MSDN).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

Tima
Сообщения: 43
Зарегистрирован: 23 сен 2004, 10:17
Откуда: Харьков
Контактная информация:

Сообщение Tima » 21 фев 2005, 11:15

Ок. Тогда такой вопрос: как узнать переменные окружения другого процесса?

Ответить