Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.08.2010, 12:10
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
Печаль Переменные среды

Здравствуйте. Есть программа на BDS 2006. Она использует несколько bpl-ок. Когда мы выпускаем новую версию, создаем setup-щик в Inno Setup. Также, в этот setup-щик включаются новые версии bpl-ок, если такие есть. Потом установочный файл рассылается по всем компьютерам фирмы. Во время установки bpl-ки устанавливаются в папку, соответствующуу переменной {sys} в Inno Setup. Т. е., на компах с XP и Windows 7 32bit в папку "C:\Windows\System32", а c Windows 7 64bit в папку "С:\Windows\SysWOW64". Но для того, чтобы установка bpl прошла успешно в семерке, нужно запускать установку от имени администратора. Поэтому я решил устанавливать bpl-ки в папку {commonappdata}. В XP это "C:\Documents And Settings\All Users\Application Data", в семерке "C:\ProgramData". Теперь нужно сделать так, чтобы наша программа ссылалась на эту папку. Для этого нужно изменить переменную среды PATH. Так вот, как это сделать не вручную на каждом компе по отдельности (компов очень много, причем переменная PATH у каждого пользователя вроде своя)?

P.S.: Пожалуйста, устанавливать bpl-ки в папку с программой не советуйте. Одни и те же библиотеки юзаются несколькими нашими программами, лежащими в разных местах.
Ответить с цитированием
  #2  
Старый 05.08.2010, 12:50
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

SetEnvironmentVariable? Или я не правильно понял вопрос?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 05.08.2010, 14:14
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Цитата:
Сообщение от Aristarh Dark
SetEnvironmentVariable? Или я не правильно понял вопрос?
Я читал про эту процедуру. Она создает или изменяет переменную окружения для текущего процесса. Пробовал самой первой строкой в коде писать это:
Код:
SetEnvironmentVariable('PATH', 'C:\AppData\Burocratos'); // Папка, где лежат bpl-ки
Не помогает. При запуске ругается на отсутствие библиотеки. Все равно, чтобы выполнилась эта процедура, нужно, чтобы запустилась программа, а чтобы запустилась программа, нужны библиотеки.

Последний раз редактировалось Kapitoshka438, 05.08.2010 в 14:18.
Ответить с цитированием
  #4  
Старый 06.08.2010, 05:31
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Тогда стоит изменять значение переменной среды при установке программы. Как это делает та же Delphi к примеру.
Вот немного из хелпа:
Цитата:
Сообщение от Help
To programmatically add or modify system environment variables, add them to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Session Manager\Environment registry key, then broadcast a WM_SETTINGCHANGE message. This allows applications, such as the shell, to pick up your updates.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 06.08.2010, 13:02
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Спасибо. Нашел, как это делается в Inno Setup.
http://forum.oszone.net/showpost.php?p=1267417
Один раз установочник нужно будет запустить от имени администратора, чтобы установилось значение переменной среды в реестре. А вот bpl-ки нужно устанавливать без прав администратора, т.к. потом заменить старые версии новыми можно будет тоже только с правами администратора.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter