Менеджер переменных окружения

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Tue 15 Dec, 2015 07:10

Данный скрипт позволяет манипулировать переменными окружения: создавать, удалять, редактировать, сохранять в файл, читать из него.
Скрипт содержит один макрос.
Клавиша вызова: AltShiftE.

Требуемая версия Far 3.0.4000+.

Attachments
EnvManager.1.4.1.7z
(13.22 KiB) Downloaded 23 times
Last edited by IgorZ on Thu 21 Sep, 2017 06:33, edited 4 times in total.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Менеджер переменных окружения

Post by Shmuel » Thu 17 Dec, 2015 11:02

Latest post of the previous page:

Мелкая ошибка: нажимаем Ins, в диалоге вводим какое-то имя, значение оставляем пустым, жмём Enter.
EnvManager.lua:127: bad argument #2 to 'format' (string expected, got nil)

Smitis
Posts: 1492
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 14 times
Been thanked: 24 times
Contact:

Менеджер переменных окружения

Post by Smitis » Thu 17 Dec, 2015 11:21

IgorZ wrote:Кое-что ещё в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Но там имена немного не те, придётся соответствия раскручивать.
По моему, это уже из разряда самодеятельности. Тогда уж пути получать через SHGetSpecialFolderLocation. Но зачем?
Разум когда-нибудь победит.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Fri 18 Dec, 2015 09:40

Shmuel wrote:Мелкая ошибка: нажимаем Ins, в диалоге вводим какое-то имя, значение оставляем пустым, жмём Enter.
EnvManager.lua:127: bad argument #2 to 'format' (string expected, got nil)
Версия 1.0.4.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Fri 18 Dec, 2015 09:45

Smitis wrote:
IgorZ wrote:Кое-что ещё в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Но там имена немного не те, придётся соответствия раскручивать.
По моему, это уже из разряда самодеятельности. Тогда уж пути получать через SHGetSpecialFolderLocation. Но зачем?
А все скрипты к FAR-у - самодеятельность ;). Вообще, всё зависит от соотношения затраченного труда и полученного результата. Если сделать просмотр и редактирование переменных из реестра, то добавить обработку ещё и этих будет, скорее всего, сравнительно дёшево.Так что посмотрим, что вообще из этой идеи получится.

Smitis
Posts: 1492
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 14 times
Been thanked: 24 times
Contact:

Менеджер переменных окружения

Post by Smitis » Fri 18 Dec, 2015 12:05

Просто это уже будет не редактор переменных, а твикер винды. ;)

П.С.
Может свою версию довести до ума и выложить? Наверное, так и сделаю. Будет конкурент :) Вот только с переменными процесса разберусь, их у меня не было.
Разум когда-нибудь победит.

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

Менеджер переменных окружения

Post by HaRT » Sat 19 Dec, 2015 23:36

IgorZ wrote: Версия 1.0.1 - Значение переменной окружения можно редактировать во встроенном редакторе Far-а. При этом составные значения, наподобие Path, разбиваются на строки.
Скрипт не пробовал, но интересно, правильно ли будут разбиваться пути, некоторые из которых закавычены из-за наличия в них точки с запятой.
Фар есть инструмент, а не нянька. © 2009 DrKnS

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Tue 22 Dec, 2015 11:48

Версия 1.0.5 - Более корректный разбор композитного значения переменной.
HaRT wrote:
IgorZ wrote: Версия 1.0.1 - Значение переменной окружения можно редактировать во встроенном редакторе Far-а. При этом составные значения, наподобие Path, разбиваются на строки.
Скрипт не пробовал, но интересно, правильно ли будут разбиваться пути, некоторые из которых закавычены из-за наличия в них точки с запятой.
Правильно, правильно, бе-бе-бе! :)

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Thu 24 Dec, 2015 10:00

Версия 1.1.0 - Добавлена обработка переменных окружения в реестре. Мелкие правки.
Внимание!!! В связи с тем, что запись в реестр была исправлена недавно (стабильная версия 4455 делает это некорректно), в скрипте встроена проверка версии LuaMacro. Если версия недостаточно свежая, редактирование и удаление переменных из реестра будет недоступно, режим "смотри, но не трогай".

2useven10, Shmuel - этого хотели?

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 84 times

Менеджер переменных окружения

Post by 2useven10 » Thu 24 Dec, 2015 10:34

Не совсем.
При редактировании переменных 'в реестре' хочется сразу видеть как изменятся зависимые переменные.
Реальная запись при этом лучше по отдельной кнопке {принять изменения}, после того как все последствия изменений видны и устраивают.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Менеджер переменных окружения

Post by Shmuel » Thu 24 Dec, 2015 11:20

IgorZ, мне хотелось видеть отдельный режим для редактирования переменных окружения текущего процесса Фара и отдельный - для редактирования системных переменных окружения (как в контрольной панели). Насколько я вижу, отдельного режима нет, всё вместе. Попробовал изменить одну переменную окружения, перезапустил Фар - наблюдаю прежнее значение.

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Thu 24 Dec, 2015 12:26

2useven10 wrote:Не совсем.
При редактировании переменных 'в реестре' хочется сразу видеть как изменятся зависимые переменные.
Реальная запись при этом лучше по отдельной кнопке {принять изменения}, после того как все последствия изменений видны и устраивают.
То есть, жмём "редактировать", изменяем, "ОК", выходит окно, что-то вроде:

Code: Select all

┌─────────────────────────────────────┐
│  Переменная A сменит значение.      │
│  Старое: BBB                        │
│  Новое : CCC                        │
├─────────────────────────────────────┤
│  [Принять изменения] [Отказаться]   │
└─────────────────────────────────────┘
Так?
Shmuel wrote:IgorZ, мне хотелось видеть отдельный режим для редактирования переменных окружения текущего процесса Фара и отдельный - для редактирования системных переменных окружения (как в контрольной панели). Насколько я вижу, отдельного режима нет, всё вместе.
Дизайн - штука разнообразная, ограниченная только воображением, а оно у всех работает по-разному. Здесь мы, видимо, не совпали. Не нравится то, что редактирование в реестре только из отдельного окна просмотра? Или непременно нужно вызывать отдельный список, в котором только реестровые переменные? Второй вариант мне кажется неудобным: лучше видеть значение этой переменной в памяти.
Shmuel wrote:Попробовал изменить одну переменную окружения, перезапустил Фар - наблюдаю прежнее значение.
Ага, обновлять надо те, что в памяти. Ладно, посмотрю, как это делать.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Менеджер переменных окружения

Post by Shmuel » Thu 24 Dec, 2015 12:42

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

IgorZ
Posts: 463
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Менеджер переменных окружения

Post by IgorZ » Mon 28 Dec, 2015 12:19

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

User avatar
Alexander84
Posts: 83
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Менеджер переменных окружения

Post by Alexander84 » Thu 07 Apr, 2016 13:30

Не хватает поиска а-ля LuaHistory. Скажем, вызываем скрипт, набираем path (вместо вглядывания в бесконечный перечень переменных и их многократного перелистывания по PageDown), получаем короткий перечень и там уже быстро переходим к правке.

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

Менеджер переменных окружения

Post by HaRT » Thu 07 Apr, 2016 13:32

Alexander84 wrote: поиска а-ля LuaHistory
Имеется в виду инкрементная фильтрация?
А не стандартное ли фаровское меню там используется? Если оно, то фильтр там есть — читайте Справку по использованию меню.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Alexander84
Posts: 83
Joined: Fri 01 May, 2009 06:38
Has thanked: 6 times

Менеджер переменных окружения

Post by Alexander84 » Thu 07 Apr, 2016 13:45

HaRT, может быть, см. на скриншоте из LuaHistory, что за поиск имею в виду, а то инкрементная фильтрация звучит сложно.

Image

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

Менеджер переменных окружения

Post by HaRT » Thu 07 Apr, 2016 13:48

Alexander84 wrote: инкрементная фильтрация звучит сложно
Может кому и сложно, но это общепринятый термин для данной функциональности, который к тому же хорошо выражает суть происходящего. И да, на вашем скриншоте ровно оно. Как включить, ищите в Справке по клавиатурным командам для меню.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

Return to “Полезные макросы и скрипты”