Russian Qt Forum
Ноябрь 24, 2024, 01:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с добавлением системных переменных.  (Прочитано 6159 раз)
Flake
Гость
« : Сентябрь 06, 2007, 14:30 »

Здравствуйте.

Нужно в windows добавить новые системные переменные и добавить путь в конец переменной Path.
Пример из ассистента не работает.
Код:
QProcess process;
QStringList env = QProcess::systemEnvironment();
env << "TMPDIR=C:\\MyApp\\temp"; // Add an environment variable
env.replaceInStrings(QRegExp("^PATH=(.*)", Qt::CaseInsensitive), "PATH=\\1;C:\\Bin");
process.setEnvironment(env);
process.start("myapp");
В чём может быть проблема?
Спасибо.
Записан
Разуев Максим
Гость
« Ответ #1 : Сентябрь 07, 2007, 06:27 »

Может проблема в винде. По крайней мере у меня при ручном изменении переменных окружения. В системе значения появлялись только при Logout/Login или перезагрузке.
Записан
vaprele07
Гость
« Ответ #2 : Сентябрь 07, 2007, 06:56 »

Оно будет работать в контексте запущенного процесса "myapp", насчёт глобальности и обновлений
см: WM_SETTINGCHANGE
Записан
Flake
Гость
« Ответ #3 : Сентябрь 07, 2007, 13:51 »

Оно будет работать в контексте запущенного процесса "myapp"
Не понял Улыбающийся Что нужно сделать, чтобы переменные добавлялись?
Записан
BD
Гость
« Ответ #4 : Сентябрь 07, 2007, 14:19 »

помимо функций winapi ( см. пост vaprele07 )
можно попробовать сделать .bat файл, где производится установка нужных переменных, а затем он вызывается средствами qt
с помощью
Код:
     QString program = "run.bat";
     QProcess *myProcess = new QProcess(parent);
     myProcess->start(program);

сам bat файл, к примеру (который можно создать либо ручками, либо создавать его в проге и затем удалять) :
Код:
set переменная=строка
path c:\MyApp

В этом случае при переносе программы на другую платформу достаточно будет поменять только файл, создающий переменные окружения.
( Да кстати, для установки переменных с помощью батника пользовалась и VS2005 при установке Подмигивающий )

Цитировать
Не понял

Имелось ввиду, что переменные окружения в том примере устанавливались не системными, а только для приложения myapp
« Последнее редактирование: Сентябрь 07, 2007, 14:22 от BD » Записан
Flake
Гость
« Ответ #5 : Сентябрь 09, 2007, 20:25 »

Батник работает только на протяжении командной сессии. А мне надо чтобы переменные устанавливались навсегда.
Записан
BD
Гость
« Ответ #6 : Сентябрь 11, 2007, 08:17 »

Для winxp\win2000\winnt батник, созданный и запущенный пользователем устанавливает переменные для этого пользователя
навсегда
Записан
Вячеслав
Гость
« Ответ #7 : Сентябрь 11, 2007, 09:07 »

Для winxp\win2000\winnt батник, созданный и запущенный пользователем устанавливает переменные для этого пользователя
навсегда
Мдя ? И как интересно ? Покажи плиз пример , так чтоб это дело не перезапускать и пользоваться только системными командами ?
И еще - батник ставит переменные только для себя и того что запущено после него .....
PS утилитки типа setx и setenv http://web6.codeproject.com/tools/SetEnv/SetEnv_exe.zip не трогаем , так-как в системе их может и не быть Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 21.