автообновление переменных окружения

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

автообновление переменных окружения

Post by NightRoman »

drkns 13.05.2010 15:47:47 +0200 - build 1548
- автообновление переменных окружения при изменении их в настройках ОС.
Можно чуть подробнее, что это такое? Может это полезно, а может и вредно?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Nightly Builds — еженощные сборки

Post by Skirda »

NightRoman wrote:drkns 13.05.2010 15:47:47 +0200 - build 1548
- автообновление переменных окружения при изменении их в настройках ОС.
Можно чуть подробнее, что это такое? Может это полезно, а может и вредно?
через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Nightly Builds — еженощные сборки

Post by Andrey Budko »

Skirda wrote:через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
А смысл?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Nightly Builds — еженощные сборки

Post by NightRoman »

Skirda wrote:
NightRoman wrote:drkns 13.05.2010 15:47:47 +0200 - build 1548
- автообновление переменных окружения при изменении их в настройках ОС.
Можно чуть подробнее, что это такое? Может это полезно, а может и вредно?
через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
Хм. Выглядит, конечно, интересно... Но может быть и медвежьей услугой, боюсь. Обычно программы так себя не ведут и пользователи этого не ожидают. Проблемы будут редко, конечно, но будут *очень* загадочными, ибо о такой фиче все забудут.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Nightly Builds — еженощные сборки

Post by DrKnS »

Skirda wrote:через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
Через реестр - фиг. Только интерфейс.
NightRoman wrote:Но может быть и медвежьей услугой, боюсь. Обычно программы так себя не ведут и пользователи этого не ожидают.
Бояться не надо. При редактировании через интерфейс рассылается бродкаст со спецпараметром, "умные" шеллы его обрабатывают и подхватывают обновлённое окружение без перезапуска.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Nightly Builds — еженощные сборки

Post by NightRoman »

А какие умные шеллы? Чтобы и с ними быть начеку на этот счет.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Nightly Builds — еженощные сборки

Post by DrKnS »

С explorer'ом тоже начеку будешь? :ha:
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Nightly Builds — еженощные сборки

Post by NightRoman »

DrKnS wrote:С explorer'ом тоже начеку будешь? :ha:
Это уже умный шелл?

А как с Cmd, PowerShell? Если с ними нет, это-таки нехорошо. Фар, скорей, должен не то чтобы подражать, это плохое слово, а поддерживать некое единообразие с такими шеллами, а не с проводником.
User avatar
HaRT
Moderator
Posts: 10867
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Nightly Builds — еженощные сборки

Post by HaRT »

NightRoman wrote:А какие умные шеллы? Чтобы и с ними быть начеку на этот счет.
По Вашим вопросам понятно, что Вы не сталкивались с той проблемой, которая решена обсуждаемым изменением. А те, кто изменение внёс, сталкивались, и я тоже.
Поверьте, на практике было чрезвычайно неудобно, что после модификации начальных значений переменных окружения приходится перезапускать консольные шеллы, чтобы получить новые значения в действии.

Другой вопрос, что могут быть сценарии, когда автоматическое обновление нежелательно. Но я таких пока не знаю.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Nightly Builds — еженощные сборки

Post by NightRoman »

HaRT
Нет, наоборот, я сталкивался с этими проблемами и научился их решать без перезапуска шеллов другими способами, которые под моим контролем.

Именно поэтому новая фича конкретно мне пользы не принесет. А вред может.

Разработчикам решать, само-собой. Нестандартные фичи, а она вроде такая, принято делать опциональными, выключенными по умолчанию. Те, кому надо, включают это у себя осознанно, получают удовольствие, но и готовы к особенностям.
User avatar
HaRT
Moderator
Posts: 10867
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Nightly Builds — еженощные сборки

Post by HaRT »

NightRoman wrote:Нет, наоборот, я сталкивался с этими проблемами и научился их решать без перезапуска шеллов другими способами, которые под моим контролем.
Так поделитесь мудростью, пожалуйста.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Nightly Builds — еженощные сборки

Post by NightRoman »

HaRT wrote:
NightRoman wrote:Нет, наоборот, я сталкивался с этими проблемами и научился их решать без перезапуска шеллов другими способами, которые под моим контролем.
Так поделитесь мудростью, пожалуйста.
Как изменить переменную окружения текущего процесса на глобальную в Фаре? В PowerShellFar:
>: $env:X = [Environment]::GetEnvironmentVariable('X', 'machine')

А если лень так, то Фар или его плагин могли бы иметь команду - импортнуть это дело. По команде. Без перезапуска Фара.

Когда Фар сам это решает за пользователя, какая среда окружения у него должна быть, это не слишком хорошо.
InTol
Posts: 6
Joined: Sat 03 Oct, 2009 23:56

Re: Nightly Builds — еженощные сборки

Post by InTol »

Насчёт нежелательных эффектов - у меня, например, фар запускается из батника в котором нужные переменные устанавливаются, если фар перечитает их из реестра то все изменения потеряются.
Dzirt2005
Posts: 327
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 10 times

Re: Nightly Builds — еженощные сборки

Post by Dzirt2005 »

А вот еще про перечитывание переменных окружения при получении сообщения WM_SETTINGCHANGE. В функции void ReloadEnvironment() вычитываются сначала переменные из HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment, потом из HKCU\Environment и так далее. Это все правильно. Но вот переменная среды PATH, она есть и в HKLM и в HKCU и именно эта переменная склеивается, хотя переменные TEMP и TMP - замещаются. В результате получаем:

Code: Select all

rem До изменения переменных:
C:\>set pa
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Dos;C:\Dos\4NT;C:\Dos\Archives;..;C:\Dos\SharedDLL;C:\Dos\UnixUtils\usr\local\wbin;D:\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.BTM;.PY

rem После изменения переменных:
C:\>set pa
Path=C:\Dos\SharedDLL;C:\Dos\UnixUtils\usr\local\wbin;D:\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.BTM;.PY
Можно как-то решить эту проблему? Честно говоря, я не знаю кроме переменной PATH еще для какой-то делается ли склейка...
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Nightly Builds — еженощные сборки

Post by DrKnS »

Т. к. у майкрософта документировано, какие именно переменные склеиваются — можно.

1558.
Post Reply

Return to “Обсуждение Far Manager”