[WFX] Environment Variables Ex
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Плагины Total Commander

#1: [WFX] Environment Variables Ex Author: SPeller PostPosted: Sun May 27, 2012 14:34
    —
http://wincmd.ru/plugring/envvars.html
Ссылка для скачивания: http://wincmd.ru/download.php?id=envvars

Quote:
FS-плагин для Total Commander. Предназначен для просмотра и редактирования переменных окружения текущего процесса (TC), текущего пользователя и системы.

Сделан по образу и подобию плагина Environment Variables, но со следующими отличиями:

- Исправлена ошибка, из-за которой невозможно редактировать переменные с длинными значениями (например, PATH).
- Плагин полностью юникодный.
- Добавлена х64 версия.
- Добавлена поддержка файловых операций с переменными как с обычными файлами: копирование из и в плагин, переименование, перемещение. Поддерживается загрузка значений переменных как в кодировке ANSI, так и в Unicode (UCS-2).
- Добавлено отображение значения переменных в отдельной колонке для лучшей работы с файлами и показа значений переменных без преобразований.
- Добавлен диалог повышения прав, если их не хватает для редактирования переменной.


Прошу пощупать и проверить ) И отписаться о проблемах и предложениях.

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

Ваши файлы локализации выкладывайте на форуме, или на мыло speller@yandex.ru


Last edited by SPeller on Thu May 31, 2012 18:32; edited 3 times in total

#2:  Author: MVVLocation: Ростов-Дон PostPosted: Sun May 27, 2012 17:42
    —
Запрашивать права администратора умеет? Без этого в 7 уже никуда.

Удобно INI-файлы использовать для локализации и настроек - API одинаково хорошо читают как ANSI, так и Unicode-файлы.

#3:  Author: Mellomann PostPosted: Sun May 27, 2012 18:03
    —
{ПКМ по envvars в fs-плагинах -> "Свойства"} не работает, и, следовательно, на русский переключить не представляется возможным.
Подсовывание конфиги от старой версии ничего не дало.

#4:  Author: SPeller PostPosted: Mon May 28, 2012 01:32
    —
MVV
MVV wrote:
Запрашивать права администратора умеет? Без этого в 7 уже никуда.

Удобно INI-файлы использовать для локализации и настроек - API одинаково хорошо читают как ANSI, так и Unicode-файлы.

Не умеет, но можно и научить, в принципе. Пока целью было сделать рабочий аналог по функционалу. Но elevate тоже полезно будет сделать. Сам я пользуюсь исключительно стандартным функционалом, поэтому его пока и реализовал.

Про ини - давно решил послать лесом все национальные кодировки. Кроме utf-8 и ucs-2 ничего не признаю ) Поэтому настроек в ansi не будет ) Через системное апи читаю только конфиг, языковой файл уже руками парсится.

Mellomann
Mellomann wrote:
{ПКМ по envvars в fs-плагинах -> "Свойства"} не работает, и, следовательно, на русский переключить не представляется возможным.
Подсовывание конфиги от старой версии ничего не дало.

В Первом сообщении я написал:
Quote:
Нет окошка настроек

Поэтому, идем в папку c плагином и ручками прописываем язык. Точнее, раскомментируем там одну строчку, которая русский и включит.
Старые файлы и не будет понимать, об этом в первом сообщении и писал, хоть и не прямо, сейчас поправил.

#5:  Author: SPeller PostPosted: Tue May 29, 2012 17:28
    —
http://wincmd.ru/download.php?id=envvars

Обновил плагин.

Запилил диалог настроек, сделал отображение значений отдельной колонкой, добавил поддержку основных файловых операций: переименование, копирование, перемещение и т.п. Можно загружать в плагин обычные файлы - их содержимое будет занесено в переменную окружения с именем, равным имени файла. Как следствие - можно нажать F4, отредактировать значение в текстовом редакторе, сохранить, и загрузить обратно в плагин, чтобы применить изменения. Пока никаких проверок на содержимое не делается, кроме попытки определить загружаемый файл как Unicode путем поиска BOM. Если BOM не найден, то файл читается как ANSI. Размер ограничен в 4КБ (взял с потолка, если надо изменить - скажите). Создавать переменные по Shift+F4 нельзя - это ограничение ТС, только через внутренний диалог создания.

#6:  Author: mrmerak PostPosted: Wed May 30, 2012 08:36
    —
SPeller
интересный плагин. При вызове настроек получаем это:
Quote:
---------------------------
Total Commander 8.0
---------------------------
Exception in envvars.wfx:FsExecuteFile!
Access violation at address 00000000. Read of address 00000000
Windows 7 SP1 6.1 (Build 7601)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Windows exception: C0000005
Stack trace:
00000000
46E3A5 46E47E 4030D0 4030D0 653B88 655504
>555A03 63822A 447253 445D99 446716 423EA8
445CD7 423EA8 429574 42960C 6D7C34
Raw:
4030D0 46DCB9 46DCB9 425B84 40767A 46E3A5
46E3BB 40208E 4023DB 425B84 46E47E 4030D0
4030D0 410080 4030D0 46DCB9 444FFE 46DCB9
444FFE 445CD7 40767A 46E3A5 46E3BB 40208E
4023DB 445CD7 46E47E 4030D0 4030D0 653B88
6860C2 652F86 423EA8 6532C8 6533F1 446A8F
4447C5 4469E5 445D27 435E02 445D27 445D99
446716 446739 6D49F7 655504 445CD7 423EA8
6D454B 69AFFF 63006C 560066 63006C 560066
4079AA 4023DB 4026A4 4036AD 403796 407CC6

Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Да Нет
---------------------------

#7:  Author: SPeller PostPosted: Wed May 30, 2012 10:29
    —
Интересно. Проверю. В 8-й версии не тестировал... Это сходу при вызове настроек такая беда?

#8:  Author: mrmerak PostPosted: Wed May 30, 2012 12:11
    —
SPeller
да

+еще если выйти из ТС с запущенным плагином при след. запуске он ничего не будет отображать

Да, забыл сказать, я юзаю только один *.wfx-файл


Last edited by mrmerak on Wed May 30, 2012 13:28; edited 1 time in total

#9:  Author: wOxxOm PostPosted: Wed May 30, 2012 13:03
    —
У меня в TC8 (релиз) настройки открываются, в списке, правда, только Default.
Если выйти с открытым плагом и запустить тотал, то при след запуске все показывается.
Есть проблемка - если настраивать ширину колонок вручную, то после перезапуска ТС первая колонка становится очень широкой и значения не видно в окошке ТС, а колонка с значениями опять становится стандартной ширины.

Плагин конечно стал гораздо удобнее оригинала благодаря отдельной колонке значений, круто!

Как насчет опции, чтобы сразу показывались переменные последней использовавшейся ветки? Ну или выбранной в опциях ветки (с папками перехода на другие ветки вверху)?

#10:  Author: Mellomann PostPosted: Wed May 30, 2012 13:38
    —
wOxxOm wrote:
Есть проблемка - если настраивать ширину колонок вручную, то после перезапуска ТС первая колонка становится очень широкой и значения не видно в окошке ТС, а колонка с значениями опять становится стандартной ширины.

Подтверждаю, настройки вообще не сохряняются после выхода (ни в wincmd ни в конфиге плагина). Пожелания - сохранять настроеное значение в конфиге плагина и сделать ширину колонок где-то около "250,40,300".

#11:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 30, 2012 14:58
    —
Вы правда верите, что тотал сообщает плагину, какие ширины колонок ставит пользователь? Very Happy
И более того, даже если плагин захочет их узнать, он никак не сможет этого сделать.

Пробуйте сохранять настройки в тотале после изменения ширины колонок.

#12:  Author: wOxxOm PostPosted: Wed May 30, 2012 15:05
    —
Сохранил - не помогло...
А может ли плагин задавать сам ширины колонок? Тогда можно было бы ввести опцию "растягивать колонки во всю ширину окна"

#13:  Author: SPeller PostPosted: Wed May 30, 2012 15:23
    —
Mr.Merak wrote:
+еще если выйти из ТС с запущенным плагином при след. запуске он ничего не будет отображать

Это колонки почему-то расползаются... Еще не понял, отчего так у меня получилось...

Mellomann wrote:
Подтверждаю, настройки вообще не сохряняются после выхода (ни в wincmd ни в конфиге плагина).

Должно в конфиге плагина сохранять, я там их однажды даже видел, но вот сейчас, видимо, где-то что-то поправил не туда, и вот такие траблы...

wOxxOm wrote:
А может ли плагин задавать сам ширины колонок?

Вообще - может, но я еще не понял, когда и как. При первом запуске - точно. А вот дальше - не понятно.

Добавлено спустя 18 минут:

wOxxOm wrote:
настройки открываются, в списке, правда, только Default.

Архив собирал ночью и как-то так получилось, что папку Lang в него не добавил... )

Добавлено спустя 9 минут:

http://wincmd.ru/download.php?id=envvars

Сделал еще обновку. Поправил работу с файлами (были косяки, что не всегда копировало-перемещало), попробовал побороть косяк с колонками, прошу проверить. Если будет по старому - попробуйте удалить плагин из ТС, а потом установить снова.

Добавлено спустя 7 минут:

wOxxOm wrote:
Как насчет опции, чтобы сразу показывались переменные последней использовавшейся ветки?

Сделаю, но уже после релиза. Сейчас пока основной функцинал надо отладить.

#14:  Author: MVVLocation: Ростов-Дон PostPosted: Wed May 30, 2012 16:03
    —
Вообще, единственное место, где плагин может указать тоталу набор колонок - это при первом входе в папку плагина. Тотал тогда вызывает функцию FsContentGetDefaultView, которая может вернуть пользовательский режим колонок. Там можно задавать ширину полей, но нельзя растянуть поле на всю доступную ширину окна, т.к. ширина окна плагину неизвестна.

#15:  Author: SPeller PostPosted: Wed May 30, 2012 16:14
    —
ТС каждый раз эту функцию вызывает, при каждом входе в плагин. Ширину панели плагин - да, не знает. Сохранить настройки - можно, через меню Save position. Но при запуске плагина снова вызывается FsContentGetDefaultView и снова дефолтные настройки применяются... В общем, как-то там мудрённо сделано, еще не разобрался до конца.

Добавлено спустя 6 минут:

Чтобы настройки сохранялись - надо зайти в редактирование колонок "Configure this custom columns view" и сохранить изменения. После этого ширина колонок будет сохраняться и при ручном изменении и вызове меню Save Position.

#16:  Author: Mellomann PostPosted: Wed May 30, 2012 18:09
    —
MVV wrote:
Вы правда верите, что тотал сообщает плагину, какие ширины колонок ставит пользователь?

Ни "верить", ни "не верить" я не собираюсь, ибо мне всё равно кто что и кому сообщает.
Я констатирую факт, что здесь сохранение нужной ширины не происходит. Но в том же registry.wfx, который использует свой набор колонок, никакой подобной проблемы нет.

SPeller wrote:
попробовал побороть косяк с колонками, прошу проверить. Если будет по старому - попробуйте удалить плагин из ТС, а потом установить снова.

Спасибо, попробуем.

#17:  Author: prog_sanLocation: Пенза PostPosted: Wed May 30, 2012 23:27
    —
В окне настроек по Tab невозможно попасть на выпадающий список языков. Без мыши настроить не получится.

#18:  Author: SPeller PostPosted: Thu May 31, 2012 02:36
    —
prog_san wrote:
В окне настроек по Tab невозможно попасть на выпадающий список языков. Без мыши настроить не получится.

Ок, поправлю

#19:  Author: mrmerak PostPosted: Thu May 31, 2012 08:32
    —
SPeller
(beta3)
Если нет ini-файла и попытаться открыть настройки - краш
Если есть, то открывает, но при последующем открытии - краш

#20:  Author: SPeller PostPosted: Thu May 31, 2012 10:58
    —
Подтверждаю... Странно, что дома вроде проверял это, всё было хорошо, а на работе сейчас вот вылезло... Займусь излечением.

#21:  Author: SPeller PostPosted: Thu May 31, 2012 18:36
    —
http://wincmd.ru/download.php?id=envvars

Проблему нашел и решил! Так же, добавил elevate для редактирования системных переменных. Сделал релизом, поскольку основные ошибки поправлены, и пользоваться можно вполне успешно.

Из известных недочетов: диалог elevate, в отличие от ТС, будет появляться при каждой правке переменных. При редактировании глобальных переменных могут быть задержки в работе, связанные с применением изменений в системе (чтобы не надо было перезагружать).

#22:  Author: MVVLocation: Ростов-Дон PostPosted: Thu May 31, 2012 21:11
    —
Чтобы не показывать elevate каждый раз, можно написать админскую утилитку по типу TCMADMIN: принимает в параметре имя пайпа и открывает его, и сидит N минут (или тупо до выгрузки плагина). По пайпу принимает команды на установку переменных от основного плагина.

#23:  Author: SPeller PostPosted: Fri Jun 01, 2012 03:01
    —
да, пайпом оно сейчас код возврата отправляет в плагин, так же можно и прием команд сделать. но это потом.

#24:  Author: alk_banka PostPosted: Fri Jun 01, 2012 23:22
    —
Очень не удобно, что каждый раз переписывается ini файл. Надо хоть какую проверку сделать, при запуске, если нет, создавать.

#25:  Author: SPeller PostPosted: Sat Jun 02, 2012 17:57
    —
Да, удалю из архива ини. Хз, зачем я его туда вообще положил )

#26:  Author: wOxxOm PostPosted: Mon Jun 04, 2012 04:27
    —
SPeller, в обновленном колонка уже не уезжает за экран, но и свой размер не запоминается. Есть вот такие идеи по сохранению ширин:
  1. настраивать ширины в диалоге настроек/ini-файле
  2. опрашивать контрол напрямую по sendmessage типа HDM_GETITEMRECT, не знаю по таймеру или например перехватывать хуком сообщений WH_CBT/WH_MOUSE и иже с ними.
  3. отреверсить тот плаг который умеет, имха несложно, хоть и неспортивно Cool

#27:  Author: SPeller PostPosted: Mon Jun 04, 2012 10:34
    —
настраивать ширину можно так:

Quote:
Чтобы настройки сохранялись - надо зайти в редактирование колонок "Configure this custom columns view" и сохранить изменения. После этого ширина колонок будет сохраняться и при ручном изменении и вызове меню Save Position.


хз, но в описании интерфейса FS плагинов не понял, можно ли обойти процедуру вызова диалога настроек.

#28:  Author: iglezz PostPosted: Sat Mar 30, 2013 03:14
    —
минибагрепорт:

Windows 7 x64
При попытке вызова настроек плагина 64-битный totalcmd умирает с сообщением:
Code:
Runtime error 204 at 000000000BB847A2

32-битный тотал при этом работает нормально

#29:  Author: LonerDLocation: Донецк PostPosted: Sat Mar 30, 2013 14:52
    —
iglezz
Подтверждаю.
Win8 x64 - тоже Тотал крашится. Хотя тут из настроек - только выбор языка, так что баг не сильно критичен для работы.

#30:  Author: mrmerak PostPosted: Sun May 26, 2013 11:38
    —
SPeller
сделай уже автообновление панелей после изменения значений

#31:  Author: SPeller PostPosted: Fri Jun 16, 2017 03:09
    —
Всем доброго дня.
В связи с тем, что у меня за всё время не появилось времени заниматься плагином, и в обозримом будущем не появится - я решил выложить исходники: https://github.com/speller/envvars_ex . Спасибо всем, кто пользуется плагином и способствовал его развитию. Надеюсь, кому-то исходники помогут сделать его еще лучше.

#32:  Author: ProgMan13 PostPosted: Tue Jan 16, 2018 19:43
    —
Тестовая версия с обновлением панелей после редактирования, вызов настроек в x64 работает. На размер сейчас не стоит обращать внимания, там иконки для разного размера значков файловой панели (и код от D1P для получения их размера).

http://progman13.wincmd.ru/downloads/envvars_ex_test2.zip

#33:  Author: Aquila PostPosted: Wed Jan 17, 2018 00:48
    —
ProgMan13
Не дает редактировать/добавить в разделе System. Пишет «Invalid Command»
TC x64 9.12 / W7 x64 SP1

#34:  Author: ProgMan13 PostPosted: Wed Jan 17, 2018 23:26
    —
Aquila
Так в исходниках... Ссылка та же, должно быть исправлено.
А если в оригинальном плагине в папке System переименовывать переменную, можно добиться изменения/удаления её значения?

#35:  Author: Aquila PostPosted: Wed Jan 17, 2018 23:45
    —
ProgMan13
В оригинальном в папке System можно переименовать, изменить/удалить.
Если переменную переименовать, то ее значение теряется.

Posted after 5 minutes:

ProgMan13 wrote:
Aquila
Ссылка та же, должно быть исправлено.


Сейчас заработало как надо! Спасибо!

#36:  Author: ProgMan13 PostPosted: Thu Jan 18, 2018 22:03
    —
Aquila wrote:
Сейчас заработало как надо! Спасибо!

А переименование?

#37:  Author: Aquila PostPosted: Thu Jan 18, 2018 22:30
    —
ProgMan13
Работает, но значение переменной теряется, как и в оригинальном ....

#38:  Author: ProgMan13 PostPosted: Fri Jan 19, 2018 18:00
    —
Aquila
Там дело в утилите elevate.exe.

http://progman13.wincmd.ru/downloads/envvars_ex_test3.zip

#39:  Author: Aquila PostPosted: Fri Jan 19, 2018 23:40
    —
ProgMan13
Бинго! Переименовывает с сохранением значения! Спасибо!

#40: Имя переменной Author: dueus_minor PostPosted: Wed Sep 16, 2020 13:48
    —
Здравствуйте!
Вопрос: можно ли использовать плагин в рамках другого плагина, в частности, Autorun, если да, то подскажите как. Ну, или вообще, возможна ли такая реализация?
Суть вопроса - автоматизированное создание переменной в среде ТС, в имени которой содержаться "()", по аналогу с переменной среды "ProgramFiles(x86)". Знаю, что такая реализация имеет место через cmd, можно также создать в реестре утилитой setx.exe и ей подобным.
Прошу прощения, если вопрос будет защитан не по теме, если да - пошлите в нужном направлении Smile

#41:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Sep 16, 2020 15:03
    —
dueus_minor
Плагин в рамках другого плагина может быть использован, если это допускает родительский плагин. Соответствующая документация в помощь (у того же Autorun прекрасная русская справка). А на этом форуме запрещены и оффтоп, и дублирование сообщений в разных темах. Спросили в теме про Autorun — и хватит, ждите ответа. Здесь продолжения не будет.
Замечание за нарушение правил форума.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group