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

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

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

Post by NightRoman » Thu 13 May, 2010 15:08

drkns 13.05.2010 15:47:47 +0200 - build 1548
- автообновление переменных окружения при изменении их в настройках ОС.
Можно чуть подробнее, что это такое? Может это полезно, а может и вредно?

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Thu 13 May, 2010 15:15

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 » Thu 13 May, 2010 15:26

Skirda wrote:через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
А смысл?

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 13 May, 2010 15:27

Skirda wrote:
NightRoman wrote:drkns 13.05.2010 15:47:47 +0200 - build 1548
- автообновление переменных окружения при изменении их в настройках ОС.
Можно чуть подробнее, что это такое? Может это полезно, а может и вредно?
через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
Хм. Выглядит, конечно, интересно... Но может быть и медвежьей услугой, боюсь. Обычно программы так себя не ведут и пользователи этого не ожидают. Проблемы будут редко, конечно, но будут *очень* загадочными, ибо о такой фиче все забудут.

User avatar
DrKnS
Posts: 5191
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 195 times

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

Post by DrKnS » Thu 13 May, 2010 16:26

Skirda wrote:через интерфейс или через реестр изменил ты, например, переменную среды PATH - Far об этом узнает и самостоятельно скорректирует свой блок переменных среды.
Через реестр - фиг. Только интерфейс.
NightRoman wrote:Но может быть и медвежьей услугой, боюсь. Обычно программы так себя не ведут и пользователи этого не ожидают.
Бояться не надо. При редактировании через интерфейс рассылается бродкаст со спецпараметром, "умные" шеллы его обрабатывают и подхватывают обновлённое окружение без перезапуска.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 13 May, 2010 16:35

А какие умные шеллы? Чтобы и с ними быть начеку на этот счет.

User avatar
DrKnS
Posts: 5191
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 195 times

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

Post by DrKnS » Thu 13 May, 2010 16:42

С explorer'ом тоже начеку будешь? :ha:

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 13 May, 2010 16:47

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

А как с Cmd, PowerShell? Если с ними нет, это-таки нехорошо. Фар, скорей, должен не то чтобы подражать, это плохое слово, а поддерживать некое единообразие с такими шеллами, а не с проводником.

User avatar
HaRT
Moderator
Posts: 8703
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

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

Post by HaRT » Thu 13 May, 2010 17:14

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

Другой вопрос, что могут быть сценарии, когда автоматическое обновление нежелательно. Но я таких пока не знаю.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 13 May, 2010 17:24

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

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

Разработчикам решать, само-собой. Нестандартные фичи, а она вроде такая, принято делать опциональными, выключенными по умолчанию. Те, кому надо, включают это у себя осознанно, получают удовольствие, но и готовы к особенностям.

User avatar
HaRT
Moderator
Posts: 8703
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 79 times
Been thanked: 146 times

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

Post by HaRT » Thu 13 May, 2010 17:26

NightRoman wrote:Нет, наоборот, я сталкивался с этими проблемами и научился их решать без перезапуска шеллов другими способами, которые под моим контролем.
Так поделитесь мудростью, пожалуйста.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 13 May, 2010 17:36

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 » Thu 13 May, 2010 19:30

Насчёт нежелательных эффектов - у меня, например, фар запускается из батника в котором нужные переменные устанавливаются, если фар перечитает их из реестра то все изменения потеряются.

Dzirt2005
Posts: 294
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 1 time

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

Post by Dzirt2005 » Wed 19 May, 2010 07:59

А вот еще про перечитывание переменных окружения при получении сообщения 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: 5191
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 195 times

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

Post by DrKnS » Wed 19 May, 2010 10:55

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

1558.

User avatar
John Doe
Бюрократ
Posts: 12247
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

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

Post by John Doe » Wed 19 May, 2010 11:06

А нельзя ли ссылочку на эту документацию?

Update
Переменные среды в Windows NT

Post Reply

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