Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

О переменной окружения. [D7, XP]


Wood ©   (2006-03-19 14:29:00) 

Доброго дня.
Мне необходимо отслеживать одну переменную среды. К примеру, в "Свойствах системы"-> "Переменные окружения" я создаю пременную со значением "temp".
В моем приложении функция GetEnvironmentVariable(Var: string)показывает значение этой переменной. Но после смены значения, напр. в "tem2", тем же способом, что и созданием (т.е. из вне), в приложении функция GetEnvironmentVariable(Var: string) по прежнему выдает "temp". Мне кажется, здесь связь с адресным пространством самого приложения из которого вызывается эта функция. Но почему, даже после закрытия приложения и повторного его запуска, все равно функция возвращает "старое" значение?!
Как "обновить" результат функции не перезагружая систему?
Спасибо.


Wood   (2006-03-20 02:58:00) [1]


> Так ты до сих пор не сообщил, работает ли у тебя после перезагрузки.[7]


После перезагрузки компьютера - ну, конечно работает! Иначе бы я не создавал этот вопрос.
Я думал, что функция GetEnvironmentVariable(Var: string) определяет результат переменной во время выполнения приложения даже тогда, когда значение ее изменилось со стороны, а оказывается надо закрыть (перезапустить) приложение, к тому же, выйти из файлового менеджера, откуда было запущена программа.


Anatoly Podgoretsky   (2006-03-19 19:58:00) [2]

Так ты до сих пор не сообщил, работает ли у тебя после перезагрузки.


Wood   (2006-03-19 17:46:00) [3]

вообщем, ни как нельзя сделать это без перезапуска приложение обновить считывание значение переменной среды?


Wood   (2006-03-19 17:23:00) [4]

Я про ярлык сказал, потому что, если запускать программу, например из FAR или WC, то то же самое, пока не перезапустишь WCommander переменная не прочитывается правильно.


Desdechado   (2006-03-19 17:05:00) [5]

Просто приложение стартует в рамках среды разработки Дельфи. А т.к. ее ты не перегружаешь,то и обновленное значение среда не получает. А получение переменных окружение происходит в момент старта программы.


Wood   (2006-03-19 16:07:00) [6]

Что харатерно: если запускать приложение с ярлыка на рабочем столе, то после перезапуска программы результат функции обновляется.
Ни как нельзя сделать это без перезапуска? :(


Wood   (2006-03-19 15:25:00) [7]

...необходимо отслеживать....Как "обновить" результат функции не перезагружая систему?
Поясню: в winXP переменная записывается в разделе Свойствах системы"-> "Переменные окружения"->"Сиситемные переменные".
А нюанс в следующем. Запускаем приложение из Delphi - переменная определяется "старая".
Запускаем на выполнение exe - переменная переопределяется. Меняем переменную средствами windows, запускаем exe - не меняется.
Почему повторное выполнение функции не приводит к обновлению результата измененной из вне переменной среды?


Anatoly Podgoretsky   (2006-03-19 15:07:00) [8]

Перезагрузи компьютер


Наверх

Титульная страница Поиск, карта сайта Написать письмо