[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Andrey_A, simup, ХарВик, chip642  
MENUIMG - для создания различных контекстных меню .BAR, .MNU
Andrey_AДата: Пятница, 08.03.2013, 08:18 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
MENUIMG




Дата выпуска: 28.01.2023
Версия: 3.2
Автор: Averin Andrey

MENUIMG - утилита для создания различных контекстных меню из *.BAR,*.MNU файлов Total Commander и *TCM файлов утилиты.






Скачать по прямой ссылке MENUIMG 3.2



 
asmadeusДата: Четверг, 14.03.2013, 03:44 | Сообщение № 16
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
GGG8, то есть
М - пункт меню
S - разделитель
P - подменю
E - конец подменю

Синтаксис команды в таком случае
M=Name¦PAth¦Param¦Icon
Где - Path - Путь к программе или встроенный парамерт Total Commander
Param - Параметры запуска программы
Icon - Номер иконки в библиотеке wcmicons.dll или любой другой библиотеке или просто иконка ( должна быть тогда добавлена соответствующая функция)
Name - имя команды, отображаемое в меню

LonerD, желание усложнять, по вашему выражению, оттуда - не хочется сваливать все команды в один ini файл, а есть использовать разные bar< то в них нет работы с подменю. Если бы не было дальнейших задумок на этот счет, я бы не писал об этом

[plus]Ладно, все разжевано, остальное уже будет просто попыткой набить себе сообщения.. Хватит.[/plus]


Сообщение отредактировал asmadeus - Четверг, 14.03.2013, 03:45
 
Andrey_AДата: Четверг, 14.03.2013, 11:02 | Сообщение № 17
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (asmadeus)
Если это не структура, тогда я не пойму, что надо.

Вот теперь структура... и если ты не против я суммирую информацию с GGG8, то могу уже можно думать именно над этим вариантом (любые другие тоже будут рассмотрены, как только будет понятен смысл и синтаксис)

Вот примерное видение.
Код

[MENU_SISTEM]
I=%COMMANDER_PATH%\Wcmicons.dll
С=%COMMANDER_PATH%\UserCmd.ini¦@Name¦@LANGTC
N=Название меню
M=Родной компьютер      Win+ E¦::{20D04FE0-3AEA-1069-A2D8-08002B30309D}¦¦¦298¦
S
M=Диспетчер Задач          Ctrl+Shift+Esc¦%WINDIR%\System32\taskmgr.exe¦¦¦299¦
M=Панель Управления     Alt+T¦%WINDIR%\System32\control.exe¦¦¦300¦
S
M=Открыть файл под курсором в NotePad¦notepad.exe¦%P%N¦¦551¦
P=Управление питанием компьютера
             M=Погасить монитор¦%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe¦monitor_off¦¦2012
             M=Выключение              Ctrl+Shift+Alt+Del¦shutdown¦-s -t 0¦¦30¦
E
G=Открыть с приоритетом
M=Запуск с приоритетом Low¦em_start_prioritylow¦¦¦125¦
M=Запуск с приорит. BelowNormal¦em_start_prioritybelownormal¦¦%COMMANDER_PATH%\My.dll¦1225¦
G=Серое название
M=Запуск с приоритетом Normal¦em_start_prioritynormal¦¦¦125¦1
S
M=Запуск с приорит. AboveNormal¦em_start_priorityabovenormal¦¦¦¦


[MENU_SISTEM] - название секции меню, это действительно удобно, т.к. в одном файле могут быть десятки меню, со своими настройками: [MENU_1] , [MENU_2]

I - библиотека по умолчанию, используемая в этом меню (можно будет не указывать, тогда прописывать свои путь к библиотекам или иконкам)
C - указывается пути файлов, если используются пользовательские команды em_, в которых они прописываются. @Name - текущий файл меню, @LANGTC- ищется имя языкового файла с командами (Wcmd_Rus.ini)
N - Название меню (можно будет не указывать)
P - Начало подменю
Е - Конец подменю
M - Пукт меню
S - Разделитель
G - "Серое" название в середине меню

Синтаксис пунктов меню
1. Название
2. Команда (могут использоваться em_, cm_ команды)
3. Параметр
4. Путь к библиотеки/значку (по умолчанию берётся из ключа I=...)
5. Номер значка
6. Запуск программы 0 (или пустой) - обычный режим; 1 - скрытый
Разделитель команд ¦
если какой-то пункт не используется, то он "пустой", но все 5 разделителей должны быть обязательны.

Возможны изменения и добавления... не обещаю сразу это сделать - в планах стоят другие цели, но как только, так сразу

Всем спасибо за интерес и участию в процессе!

Можно и так

Код

[MENU_SISTEM]
ICON=%COMMANDER_PATH%\Wcmicons.dll
СOMMAND=%COMMANDER_PATH%\UserCmd.ini¦@Name¦@LANGTC
NAMETITLE=Название меню
MENUITEM=Родной компьютер      Win+ E¦::{20D04FE0-3AEA-1069-A2D8-08002B30309D}¦¦¦298¦
        SEPARATOR
MENUITEM=Диспетчер Задач          Ctrl+Shift+Esc¦%WINDIR%\System32\taskmgr.exe¦¦¦299¦
MENUITEM=Панель Управления     Alt+T¦%WINDIR%\System32\control.exe¦¦¦300¦
        SEPARATOR
MENUITEM=Открыть файл под курсором в NotePad¦notepad.exe¦%P%N¦¦551¦
POPUP=Управление питанием компьютера
             MENUITEM=Погасить монитор¦%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe¦monitor_off¦¦2012
             MENUITEM=Выключение              Ctrl+Shift+Alt+Del¦shutdown¦-s -t 0¦¦30¦
END_POPUP
GREY=Открыть с приоритетом
MENUITEM=Запуск с приоритетом Low¦em_start_prioritylow¦¦¦125¦
MENUITEM=Запуск с приорит. BelowNormal¦em_start_prioritybelownormal¦¦%COMMANDER_PATH%\My.dll¦1225¦
MENUITEM=Запуск с приоритетом Normal¦em_start_prioritynormal¦¦¦125¦1
        SEPARATOR
MENUITEM=Запуск с приорит. AboveNormal¦em_start_priorityabovenormal¦¦¦¦


а можно и так и так

[plus]а на счёт нового синтаксиса - в том же тотале есть места, которые давно мне известны, но..

Код
X_ext=
X_name=
X=4|1|1|1|1|0|0
X=

или

Код
X_SearchFlags=0|000002000020||||||||22220|0000|
X_SearchFor=*.
X_SearchIn=
X_SearchText=


так что никто не боится нового синтаксиса, тем более он не ради прихоти, а ведёт на другой уровень). Большинству этого не надо, а мы на него не равняемся, ибо то, что сегодня непонятно, после завтра становится общепринятым)
[/plus]


 
LonerDДата: Четверг, 14.03.2013, 18:32 | Сообщение № 18
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
GGG8
Цитата
Чем же ваше предложение отличается от того, что уже есть в утилите?

Возможностью указывать любой файл или файлы с em-командами.

Цитата
Зачем же вставлять [команды ниже меню], когда то же самое есть UserCmd.ini

Мне - незачем совершенно.
Это не я предложил комбинировать в одном файле меню и команды.
Но раз поступило таковое пожелание от asmadeus - я сформулировал концепцию в более простом и наглядном представлении - не в одну строчку, а по-тоталовски разложить всё по полочкам.

Цитата
Ведь одной и той же em_ командой я пользуюсь не только в этом меню, но и на панелях...

Чем и где пользуетесь лично и конкретно вы - это уже лично и исключительно ваше право и желание.
Утилита делается для широкого круга пользователей. И гибкость в работе вкупе с юзабельными настройками - залог успешного развития программы (скрипта).
И вполне актуален момент подгрузки нужных команд только в конкретном меню.
Логично для оптимизации файла с em-командами и оптимизации работы самого Тотала вынести часть специфических команд в отдельный файл. Тем самым уменьшится основной ini-файл с командами, а специфические команды можно будет вызывать только посредством MENUIMG.

Цитата
Зачем же дублировать и там и там?

Незачем. Никто кроме вас про дублирование и не упоминал.

Цитата
И откуда берутся значки в вашем варианте?

В каком из моих вариантов?
Если в том конкретном фрагменте, код которого я привёл, - значков нет, так как это лишь демонстрационный пример. Для добавления их можно использовать упомянутую мною стандартную функцию Тотала, а именно ключ buttonXX в секциях пользовательских команд.
Если в моём варианте "ещё лучше (наверное, оптимальный вариант) - как в Акелпаде." - то соответственно иконки добавляются как в меню Акелпада (это немного напоминает ваш вариант, только без кучи вертикальных разделителей).


DreamLair.net

Сообщение отредактировал LonerD - Четверг, 14.03.2013, 18:38
 
GGG8Дата: Четверг, 14.03.2013, 19:29 | Сообщение № 19
Подполковник

На сайте с: 28.02.2012
Город: Владимир
Сообщений: 114
Награды: 2
Репутация: 4
Цитата (LonerD)
я сформулировал концепцию в более простом и наглядном представлении

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

Цитата (LonerD)
Тем самым уменьшится основной ini-файл с командами

Для функций работы с INI файлами неважен размер файла, на время считывания ключа не влияет объём файла, так что выносить это двойная работа, ну раз так лично хочется...

Цитата (LonerD)
ещё лучше (наверное, оптимальный вариант) - как в Акелпаде.

Чем он лучше. Известны проблемы с параметрами в AkelPad, а именно с кавычками, пробелами,..., так зачем же переносить проблемы, от которых хочется избавится.

вот синтаксис AkelPad
Код
-"Отправить содержимое файла [spoiler]... [\spoiler] в буфер" +Call("Scripts::Main", 1, "EvalCmd.js", `"var pScript='[spoiler]' + AkelPad.GetTextRange(0, -1) + '[/spoiler]'; if (pScript) AkelPad.SetClipboardText(pScript); "`) Icon("%a\AkelPadImage.dll",251)


тут полный набор, того что не нужно: кавычки, запятые, галочки...

или тоже самое в нашем варианте без всего этого. Не нравится разделитель? ))) Просто привыкли к меню акела, вот и всё.

Код
M=Отправить содержимое файла [spoiler]... [\spoiler] в буфер¦+Call("Scripts::Main", 1, "EvalCmd.js", `"var pScript='[spoiler]' + AkelPad.GetTextRange(0, -1) + '[/spoiler]'; if (pScript) AkelPad.SetClipboardText(pScript);¦%a\AkelPadImage.dll¦251¦


Цитата (LonerD)
Утилита делается для широкого круга пользователей. И гибкость в работе вкупе с юзабельными настройками - залог успешного развития программы (скрипта).

Тот кто захочет разберётся, тем более в утилитах и скриптах Andrey_A какой бы не был синтаксис, полно примеров и описания.


Сообщение отредактировал GGG8 - Четверг, 14.03.2013, 19:42
 
ХарВикДата: Четверг, 14.03.2013, 20:37 | Сообщение № 20
Генералиссимус

На сайте с: 29.01.2012
Город: Черкассы
Сообщений: 1629
Награды: 18
Репутация: 18
Предлагаю сделать подгрузку в под меню целыми bar'ами

Код
POPUP "Системное меню", "%COMMANDER_PATH%\BAR\034_Computers.bar"
END_POPUP
POPUP "Безопасность системы", "%COMMANDER_PATH%\BAR\187_Systems_01.bar"
END_POPUP
POPUP "Восстановление системы", "%COMMANDER_PATH%\BAR\189_Systems_03.bar"
END_POPUP
 
asmadeusДата: Четверг, 14.03.2013, 22:55 | Сообщение № 21
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Andrey_A, что суммируешь мои наработки с другими, я не против. Только одно я по моему забыл упомянуть - нужно не ручное редактирование файла меню ( ручное на крайний случай), а так - взял код кнопки с сайта, нажал добавить - и тебе все само раскидалось по команде нового синтаксиса :D
 
Andrey_AДата: Пятница, 15.03.2013, 01:08 | Сообщение № 22
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (asmadeus)
само раскидалось по команде нового синтаксиса

Ок, наймём кого-нибудь для раскидки кнопок)))
Шутка, а если серьёзно не думал, что утилита подымет волну, ведь делал для себя и для сборки... постепенно всё
реализую и главное чёткая постановки задачи... 20-30 строк и любая идея внесена...
Конвертация прямая и обратная записана. Спасибо.

Цитата (ХарВик)
Предлагаю сделать подгрузку в под меню целыми bar'ами

ХарВик, С днём рождения, спасибо за очень хорошее предложение, я знаю, что ты что-то подобное озвучивал ещё год назад, вот и пришло время его реализовать...


 
ХарВикДата: Пятница, 15.03.2013, 01:32 | Сообщение № 23
Генералиссимус

На сайте с: 29.01.2012
Город: Черкассы
Сообщений: 1629
Награды: 18
Репутация: 18
Спасибо, Андрей, за поздравление и за поддержку идеи, так поди и дойдём до реализации. good
 
Andrey_AДата: Понедельник, 08.04.2013, 07:52 | Сообщение № 24
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Высвободилось время для меню...

- Добавлена возможность вызова в заданной позиции

Конечно тестирование ещё покажет свои нюансы, но выявилось ещё в утилите TCIMG (а здесь подтвердилось), что Идентификатор элемента управления TMyListBox1,2... выдаёт различные результаты - оказалось он "бегает" в разных ситуациях - легко можно это увидеть, открыв несколько FTP и появляется TMyListBox3,4..., поэтому

Цитата (LonerD)
TMyListBox1 absolute (0;0) (0;0) - верхний левый угол меню помещается в верхний левый угол правой файловой панели Тотала.


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

MENUIMG 1.3 от 08.04.2013

Скачать Доступно только для пользователей



 
Andrey_AДата: Понедельник, 08.04.2013, 22:42 | Сообщение № 25
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Развитие меню продолжается...

Добавлена возможность вызова меню с дополнительными параметрами:
- внешний вид боковой слева надписи меню
- отображение значка на пункте заголовка вложенного меню
- изменение значка при наведении курсора на пункт заголовка вложенного меню
- отображение слева от меню изображения BMP

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Пример отображения боковой правой надписи



Пример отображения при наведении курсора заданного значка пунктам заголовков вложенных меню



Пример отображения заданного значка пунктам заголовков вложенных меню



Пример отображения заданного значка пунктам заголовков вложенных меню и изменении значка при наведении курсора



Пример отображения заданного изображени BMP



_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

MENUIMG 1.4 от 08.04.2013

Скачать Доступно только для пользователей





 
Andrey_AДата: Вторник, 09.04.2013, 20:32 | Сообщение № 26
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
[info]Была исправлена ошибка в 1.4 . Перекачайте[/info]

 
asmadeusДата: Вторник, 09.04.2013, 23:35 | Сообщение № 27
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
прошу прощения, но не могу вставить свою тему боковой панели...

вот мой ини файл
Код
; MENUIMG.ini
[Собрал Составил Изменил... Аверин Андрей Averin-And@yandex.ru ]
[MENUIMG 1.2 Версия от 01.04.2013 специально для Total Commander Image]
[Сайт поддержки http://tc-image.3dn.ru ]
[Setting]
; PauseTcPrm - Пауза между созданием и вызовом пользовательской команды TC (команда tcprm)    
PauseTcPrm=100

[Default]
; фон меню
BkColor=F0F0F0
; 1-й фон области значков
IconBkColor=F0F0F0
; 2-й фон области значков
IconBkGrdColor=FFFFFF
; фон пункта при наведении курсора
SelectBkColor=B6BDD2
; обводка вокруг фона пункта при наведении курсора
SelectRectColor=404285
; цвет текста меню
TextColor=000000
; изменение цвета текста при наведении курсора
SelectTextColor=000000

[Red]
BkColor=FFDDAA
IconBkColor=BB6655
SelectBkColor=C0A070
SelectRectColor=404285
TextColor=000000
SelectTextColor=000000

[Green]
BkColor=AAFFAA
IconBkColor=66BB66
SelectBkColor=88CCBB
SelectRectColor=772222
SelectTextColor=000077
TextColor=000000

[Blue]
BkColor=B8B8FF
IconBkColor=7788BB
SelectBkColor=222266
SelectRectColor=AA7744
SelectTextColor=FFFF66
TextColor=000000

[OLBlue]
BkColor=FFFFFF
IconBkColor=E3EFFF
IconBkGrdColor=87ADE4
SelectBkColor=FFEEC2
SelectRectColor=000080
SelectTextColor=000000
TextColor=000000

[OLSilver]
BkColor=F9F9F9
IconBkColor=FDFDFD
IconBkGrdColor=A0A0C0
SelectBkColor=FFEEC2
SelectRectColor=000080
SelectTextColor=000000
TextColor=000000

[DarkBlue]
BkColor=C0D8FF
IconBkColor=7788EE
IconBkGrdColor=303370
SelectBkColor=222266
SelectRectColor=AA7744
SelectTextColor=FFFF66
TextColor=000000

; темы вертикальных надписей
; [v_Название_Темы]
; VerBkColor=D00000 - 1-й цвет фона
; VerBkGradColor=CEE23A - 2-й цвет фона
; VerTextColor=00FFFF - цвет текста

;сине-бирюзовый фон, жёлтая надпись
[v_BTY]
VerBkColor=0000D0
VerBkGradColor=3AE2CE
VerTextColor=FFFF00
; чёрно-красный фон, белая надпись
[v_BRW]
VerBkColor=000000
VerBkGradColor=FF0000
VerTextColor=FFFFFF
; v_podarok © asmadeus
[v_podarok]
VerBkColor=000000
VerBkGradColor=000000
VerTextColor=17CE33

И моя команда для вызова. Не пойму, где ошибаюсь я или программа?

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\MENUIMG.exe
%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#Red||$Мои~~инструменты||&v_podarok!!Частые~~программы
%COMMANDER_PATH%\Wcmicons.dll,2
Мои инструменты

-1


В итоге - боковая панель просто черного цвета, без текста. И это при любых цветах - пробовал разные. Только прописаные изначально темы меняются нормально


Сообщение отредактировал asmadeus - Среда, 27.11.2013, 18:54
 
Andrey_AДата: Среда, 10.04.2013, 01:19 | Сообщение № 28
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Цитата asmadeus
Не пойму, где ошибаюсь я или программа?

Всё дело в # .Правильный вариант:

Код

; v_podarok © asmadeus
[v_podarok]
VerBkColor=000000
VerBkGradColor=000000
VerTextColor=17CE33


Спасибо за подарок!


 
asmadeusДата: Среда, 10.04.2013, 19:53 | Сообщение № 29
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
держи еще podarok))
Код
[podarok]
BkColor=000000
IconBkColor=7788EE
IconBkGrdColor=303370
SelectBkColor=222266
SelectRectColor=AA7744
SelectTextColor=FF0000
TextColor=37E13C


а я не пойму - название меню (верхняя строка) никак не меняется? и можно еще добавить измениние шрифта в программу (размер и начертание)


Сообщение отредактировал asmadeus - Среда, 27.11.2013, 18:56
 
Andrey_AДата: Пятница, 12.04.2013, 09:08 | Сообщение № 30
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7187
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (asmadeus)
держи еще podarok))

Спасибо!

Цитата (asmadeus)
а я не пойму - название меню (верхняя строка) никак не меняется?

Параметр $Название

Код
%Z%P%N||#OLSilver||$Супер~~меню
%Z%P%N||#OLSilver||$Название


Цитата (asmadeus)
и можно еще добавить измениние шрифта в программу (размер и начертание)

Пока нет, как только так сразу


 
Поиск:

Интеллектуальные права и отказ от ответственности