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

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




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

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






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



 
GGG8Дата: Пятница, 08.03.2013, 15:30 | Сообщение № 2
Подполковник

На сайте с: 28.02.2012
Город: Владимир
Сообщений: 114
Награды: 2
Репутация: 4
Цитата (Andrey_A)
утилита для создания различных контекстных меню из *.BAR,*.MNU файлов Total Commander.

Вижу процесс идёт! Отлично! Утилита мне понравилась - она 2 в одном. Теперь TCmenu и TcMenuPopup можно убрать, тем более по сравнению с TCmenu работает стабильнее при больших списках меню, а по сравнению с TcMenuPopup отображает значки и можно настраивать варианты внешнего вида!
Есть небольшой минусик - работает чуть медленнее.
Вопрос: поддержка размера планируется?

Ещё раз поздравляю с новой утилитой!
 
Andrey_AДата: Пятница, 08.03.2013, 20:24 | Сообщение № 3
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (GGG8)
Ещё раз поздравляю с новой утилитой!

Спасибо.

Цитата (GGG8)
поддержка размера планируется?

Возможно, но не настолько это актуально...

Исправлена ошибка - выложена в шапке версия 1.1


 
asmadeusДата: Суббота, 09.03.2013, 18:06 | Сообщение № 4
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Предлагаю добавить настройку размеров шрифта и начертание. Не принципиально, а так, из эстетических соображений
 
LonerDДата: Суббота, 09.03.2013, 20:05 | Сообщение № 5
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
Замечательное начинание.
Спасибо за утилиту up
Пусть нет той миниатюрной изящности языка С как в TcMenuPopup или PopSel, но возможность гибкой настройки, привязки к панелям и меню Тотала и наличие энтузиазма для доработки - то чего так не хватало.
Надеюсь, глубина вложенности поддерживается любая? (в PopSel как-раз неудобен всего один уровень подменю).
Маленький нюанс - абсолютный путь к ResHackerу лучше убрать.

По поводу шрифтов - присоединяюсь. Принципиально. И не только размер и начертание, но и тип шрифта. Плюс возможность задать в параметрах также пропорциональный размер шрифта относительно размера шрифта Тотала.
Второе пожелание (о котором я когда-то просил ещё в контексте TcMenuPopup) - сделать возможность привязывать любой относительной точки меню к любой точке экрана, окна Тотала, панели Тотала.
Как я себе это представляю:
Параметры: TTOTAL_CMD absolute (0;0) (5;5) - за основу берётся окно Тотала, путь абсолютный, левый верхний угол меню (0;0) помещается в координаты (5;5) левого верхнего угла окна Тотала.
TMyListBox1 absolute (0;0) (0;0) - верхний левый угол меню помещается в верхний левый угол правой файловой панели Тотала.
TTOTAL_CMD relative (50;50) (50;50) - центр меню (за основу берётся 50% от левого края меню, 50% от сверху меню) помещается в центр окна Тотала (то есть в точку с координатами 50% слева, 50% сверху).
Windows relative (50;50) (25;25) - центр меню помещается в центр левого верхнего угла экрана.

Не очень понял - откуда берутся иконки для mnu-файлов? Из usercmd и соответствующих тоталовских языковых файлов? Ох, это большой не-гуд... Тогда редактировать будет совсем уныло при большом количестве менюшек при их изменениях. Лучше тогда сделать для каждого такого mnu отдельный файл настроек по типу Wcmicons.inc/Wciconex.inc с заданием порядка иконки из заданного контейнера в зависимости от позиции пункта меню. Тогда можно будет назначать иконки даже пунктам выпадающего подменю.
Или ещё лучше (наверное, оптимальный вариант) - как в Акелпаде.

PS. Кстати, цвет в настройках задаётся в привычном RGB или как в настройках Тотала - в BGR ?


DreamLair.net

Сообщение отредактировал LonerD - Суббота, 09.03.2013, 20:30
 
asmadeusДата: Суббота, 09.03.2013, 20:09 | Сообщение № 6
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
LonerD, спасибо за поддержку моего предложения
 
asmadeusДата: Понедельник, 11.03.2013, 18:34 | Сообщение № 7
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Вношу предложение, реализация какого сложна и требует большого ума и знаний. Буду рассказывать, как я понимаю, если что, спрашивайте :D Итак, menuimg в данный момент понимает два формата меню - bar (формат панелей инструментов Total Commander) и mnu (формат главного меню Total Commander). В bar все кнопки и параметры хранятся в нем самом, в одном файле, да и кнопки на сайте представлены для bar. В mnu содержится только текст команды и ее идентификатор, все параметры хранятся в wcmd_rus.ini или usercmd.ini, но зато есть возможность добавления подменю. Вот отрезки из файлов bar и mnu
Bar
Код
[Buttonbar]
Buttoncount=11
button1=
iconic1=0
button2=%COMMANDER_PATH%\Wcmicons.dll,977
cmd2=%COMMANDER_PATH%\Programs\Internet\The_Bat!\TheBatPortable.exe
iconic2=0
menu2=Почтовый клиент TheBat
button3=%COMMANDER_PATH%\Wcmicons.dll,896
cmd3=%COMMANDER_PATH%\Programs\Internet\MirandaIM\MirandaPortable.exe
iconic3=0
menu3=Miranda
button4=%COMMANDER_PATH%\Wcmicons.dll,767
cmd4=%COMMANDER_PATH%\Programs\Internet\Opera_AC\OperaLauncher.exe
iconic4=0
menu4=Opera AC  CTRL+SHIFT+ALT+O
button5=%COMMANDER_PATH%\Wcmicons.dll,768
cmd5=%COMMANDER_PATH%\Programs\Internet\Firefox\FirefoxPortable.exe
iconic5=0
menu5=Mozilla Firefox
button6=%COMMANDER_PATH%\Wcmicons.dll,487
cmd6=%COMMANDER_PATH%\Programs\Internet\GoogleEarth\GoogleEarthPortable.exe
iconic6=0
menu6=Планета Земля в GoogleEarth
button7=
iconic7=0


Mnu
Код
POPUP "&Сравнить папки и файлы..."       
                  MENUITEM "&Сравнить по содержимому...\tAlt+C", $7E6
                  MENUITEM "Сравнить &инструментом TC\tAlt + ;(:)", $7F8    
                  MENUITEM "Синхронизировать каталоги...\tAlt+D", $7E4
                  MENUITEM "Сравнить &каталоги\tShift+F2", $215
                  MENUITEM "Сравнить с у&чётом подкаталогов", $218
                  MENUITEM "Срав&нить скрыв одинаковые файлы", $216       
END_POPUP           
POPUP "&Запуск в отдельном процессе..."
                  MENUITEM "&Сравнить по содержимому...", em_and_1683
                  MENUITEM "Синхронизировать &директории...", em_and_1684
                  MENUITEM "Синхронизировать &только выделенное...", em_and_1689
END_POPUP
POPUP "Сравнить файлы..."
            MENUITEM "Сравнить файлы в BCompare...", em_and_29
            MENUITEM "Сравнить файлы в WinMergeU...", em_and_510
END_POPUP
POPUP "Сравнить папки..."

            MENUITEM "Сравнить папки в BCompare...", em_and_1453
            MENUITEM "Сравнить папки в WinMergeU...", em_and_1454
END_POPUP    
     


Идея - изобрести новый формат меню, новое расширение ( например, *.tcm) и добавить поддержку в menuimg. А меню синхронизации тогда выглядело бы так
Код
POPUP "&Сравнить папки и файлы..."       
                  MENUITEM "&Сравнить по содержимому...\tAlt+C", $7E6
                  MENUITEM "Сравнить &инструментом TC\tAlt + ;(:)", $7F8    
                  MENUITEM "Синхронизировать каталоги...\tAlt+D", $7E4
                  MENUITEM "Сравнить &каталоги\tShift+F2", $215
                  MENUITEM "Сравнить с у&чётом подкаталогов", $218
                  MENUITEM "Срав&нить скрыв одинаковые файлы", $216       
END_POPUP           
POPUP "&Запуск в отдельном процессе..."
       MENUITEM "&Сравнить по содержимому...",   
                  Cmd=%COMMANDER_PATH%\TOTALCMD.EXE /S=C
                  Param=%Z %T%R1 %T%S1 %P%S2
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,13
                  Iconic=0
       MENUITEM "Синхронизировать &директории...",   
                  Cmd=%COMMANDER_PATH%\TOTALCMD.EXE /S=S
                  Param=%Z%X "%P" "%T"
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,213
                  Iconic=0
       MENUITEM "Синхронизировать &только выделенное...",   
                  Cmd=%COMMANDER_PATH%\TOTALCMD.EXE /S=S
                  Param=%Z%X "%P" "%T" /O=%L
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,1726
                  Iconic=0
END_POPUP
POPUP "Сравнить файлы..."
       MENUITEM "Сравнить файлы в BCompare...",   
                  Cmd=%COMMANDER_PATH%\Utilities\Comparison\BCompare\BCompare.exe
                  Param=%p%n %t%m
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,815
                  Iconic=0
       MENUITEM "Сравнить файлы в WinMergeU...",   
                  Cmd=%COMMANDER_PATH%\Utilities\Comparison\WinMerge\WinMergeU.exe
                  Param=%p%n %t%m
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,999
                  Iconic=0
END_POPUP
POPUP "Сравнить папки..."        
       MENUITEM "Сравнить папки в BCompare...",   
                  Cmd=%COMMANDER_PATH%\Utilities\Comparison\BCompare\BCompare.exe
                  Param=%p %t
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,815
                  Iconic=0
       MENUITEM "Сравнить папки в WinMergeU...",   
                  Cmd=%COMMANDER_PATH%\Utilities\Comparison\WinMerge\WinMergeU.exe
                  Param=%p %t
                  Path=
                  Button=%COMMANDER_PATH%\Wcmicons.dll,999
                  Iconic=0       
END_POPUP        
     

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


Сообщение отредактировал asmadeus - Понедельник, 11.03.2013, 18:37
 
LonerDДата: Понедельник, 11.03.2013, 19:48 | Сообщение № 8
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
Изобретать велосипед имхо ни к чему.
Просто и удобней будет сделать так: в настройках MENUIMG сделать возможность указать ini-файлы (желательно несколько) из которых будут считываться em-команды. Тогда если эти команды не используются в самом Тотале напрямую - можно будет их выносить в отдельный файл(ы), подключаемый(е) к MENUIMG.

asmadeus
И к слову - для BCompare лучше добавить %Z%X.
А для WinMerge - добавить /r /e /x /s %Z%X.
А файлы добавлять к сравнению через lst2str.


DreamLair.net
 
asmadeusДата: Понедельник, 11.03.2013, 20:13 | Сообщение № 9
Генералиссимус

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

Обнаружил, что menumg не работает, если в панели открыт архив. Решение простое - в строке параметра в начале поставить %Z. То есть было

Код

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\MENUIMG.exe
%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#Red||$Мои~~инструменты
%COMMANDER_PATH%\Wcmicons.dll,2
Мои инструменты

-1



А стало

Код

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\MENUIMG.exe
%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#Red||$Мои~~инструменты
%COMMANDER_PATH%\Wcmicons.dll,2
Мои инструменты

-1


Панель взята для примера, это моя панель, и ее нет в сборке
 
Andrey_AДата: Понедельник, 11.03.2013, 22:08 | Сообщение № 10
Генералиссимус

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

Да, любая, но при больших меню пока явное торможение... возможно разрешится проблема с кешем
Цитата (LonerD)
По поводу шрифтов - присоединяюсь. Принципиально.


Цитата (LonerD)
относительной точки меню к любой точке экрана, окна Тотала, панели Тотала.


Реализация в пути...
Цитата (LonerD)
Не очень понял - откуда берутся иконки для mnu-файлов? Из usercmd и соответствующих тоталовских языковых файлов? Ох, это большой не-гуд...

Утилита вышла с базовой основой... Кроме Wcmd_Rus.ini и UserCmd.ini я не пользуюсь ничем, и легко ими оперирую, вернее не я а скрипты, и главное меню пересобирается в 3 сек. Поэтому для других предложений требуется:

Вопрос поддержки других ini файлов, значков, синтаксиса... я не против.

1. Необходимо выслать несколько файлов с любым внятным синтаксисом, я постараюсь их переложить
2. Папка со значками или файл библиотеки для тестирования

Цитата (asmadeus)
Идея - изобрести новый формат меню, новое расширение ( например, *.tcm) и добавить поддержку в menuimg. А меню синхронизации тогда выглядело бы так

Идея хорошая - соберётся достаточно нужной информации - сделаю

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

Да нет проблем, выслать несколько файлов и работа закипела


 
asmadeusДата: Вторник, 12.03.2013, 22:43 | Сообщение № 11
Генералиссимус

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

[Path],[Param],[Icon],[Name]
-[Path],[Param],[Icon],[Name]
--[Path],[Param],[Icon],[Name]
-[Path],[Param],[Icon],[Name]
[Path],[Param],[Icon],[Name]

Где - [Path] - Путь к программе
[Param] - Параметры запуска программы
[Icon] - Номер иконки в библиотеке wcmicons.dll
[Name] - имя в всплывающем меню
символ [-] указывает на подменю, [--] - подменю второго уровня и т.д

Для примера кнопка

Код
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\TCIMG.exe"
[imgup=%P%N||2||-1||300||300||0||100]
%COMMANDER_PATH%\Wcmicons.dll,1317
Показать изображение под курсором слева
0
-1


выглядела бы так
Код

[%COMMANDER_PATH%\TCIMG.exe],[imgup=%P%N||2||-1||300||300||0||100],[1317],[Показать изображение под курсором слева]
 
Andrey_AДата: Среда, 13.03.2013, 01:29 | Сообщение № 12
Генералиссимус

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


Информация накапливается...
Это видимо часть синтаксиса и для одной команды, а нужна структура...
1. Не хватает
- названия пункта меню
- сепаратора
- серого заблокированного под названия
- имена уровней, подуровней
2. [квадратные скобки не пойдут] - очень много команд их используют и вообще обычные символы разделители не устраивают, можно попробовать взять разделитель из неиспользуемых, к примеру ¦, ...


 
asmadeusДата: Среда, 13.03.2013, 21:21 | Сообщение № 13
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Код
ITEMMENU #::{20D04FE0-3AEA-1069-A2D8-08002B30309D}#,#298#,#Родной компьютер      Win+ E#
SEPARATE
ITEMMENU #%WINDIR%\System32\taskmgr.exe#,#299#,#Диспетчер Задач          Ctrl+Shift+Esc#
ITEMMENU #%WINDIR%\System32\control.exe#,#300#,#Панель Управления     Alt+T#
ITEMMENU #%WINDIR%\System32\services.msc#,#323#,#Службы#
ITEMMENU #Path#,#Param#,#Icon#,#Name#
SEPARATE
ITEMMENU #notepad.exe#,#%P%N#,#551#,#Открыть файл под курсором в NotePad#
ITEMMENU #Calc.exe#,#558#,#Калькулятор#
ITEMMENU #SndVol.exe#,#717#,#Настройка системного звука#
ITEMMENU #osk.exe#,#312#,#Клавиатура#
ITEMMENU #%COMMANDER_PATH%\TCIMG.exe#,#nkey=key#,#1524#,#Смена раскладки клавиатуры Ctrl + Spase#
SEPARATE
ITEMMENU #%COMMANDER_PATH%\Utilities\Systems\SysRestorePoint\SysRestorePoint.exe#,#1657#,#Создание точки восстановления в фоне#
SEPARATE
SECOND_MENU #Управление питанием компьютера#
ITEMMENU #%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe#,#monitor_off#,#2012#,#Погасить монитор#
ITEMMENU #shutdown#,#-s -t 0#,#30#,#Выключение              Ctrl+Shift+Alt+Del#
ITEMMENU #shutdown#,#-r -t 0#,#31#,#Перезагрузка             Ctrl+Shift+Alt+Home#
ITEMMENU #rundll32 powrprof.dll,SetSuspendState#,#32#,#Спящий режим         Ctrl+Shift+Alt+End#
ITEMMENU #%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe#,#lock#,#2013#,#Заблокировать компьютер#
ITEMMENU #%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe#,#logoff#,#2014#,#Выход из пользователя#
END_SECOND
SEPARATE
ITEMMENU #%COMMANDER_PATH%\Utilities\Systems\SwitchOff\SwOff.exe#,#Param#,#1074#,#Выключение по расписанию  SwitchOff#


Итак, Separate - разделитель
ITEMMENU - пункт меню
SECOND_MENU - начало подменю
END_SECOND-конец подменю

Код
Общий синтаксис команды:
   ITEMMENU #Path#,#Param#,#Icon#,#Name#   


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

Если это не структура, тогда я не пойму, что надо.
 
LonerDДата: Среда, 13.03.2013, 23:58 | Сообщение № 14
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
Цитата (asmadeus)
Если это не структура

Это структура, но откуда такое желание всё переусложнять??
Ещё раз повторяюсь - незачем изобретать велосипед.
Гислер изобрёл всё давным давно, оно работает вполне исправно.

Зачем все эти разделители и запятые, которые надо ещё парсить?? Потом пытаться понять что-то в этих многоэтажных командах...
У кого в параметрах - три буквы две цифры, тем, возможно, и проще будет. А у меня, например, в параметрах и запятые в разных комбинациях, и разные спецсимволы используются, и сами параметры достигают до 1000 знаков.

Берём самое обычное меню Тотала - mnu-файл.
Берём самый обычный файл с командами. Пусть это будет usercmd.ini или Wcmd_eng.ini или любой другой, обзовём его как угодно. И всё, больше ничего не нужно.
MNUFILE||EMFILE(S)||#THEME||$TITLE
В параметрах указываем путь к mnu-файлу, путь к файлу с em-коммандами. Можно предусмотреть подключение нескольких файлов с em-командами, разделив их запятыми или какими-либо разделительными символами.

Хочется всё запихнуть в один файл - да не вопрос, указываем в качестве EMFILE тот самый mnu-файл, и меню тогда будет выглядеть так:

Код
POPUP "Открыть"
     MENUITEM "Открыть текущий файл\tEnter / Alt+Space", cm_Return
     POPUP "Открыть с приоритетом"
       MENUITEM "Запуск с приоритетом Low", em_start_prioritylow
       MENUITEM "Запуск с приорит. BelowNormal", em_start_prioritybelownormal
       MENUITEM "Запуск с приоритетом Normal", em_start_prioritynormal
       MENUITEM "Запуск с приорит. AboveNormal", em_start_priorityabovenormal
       MENUITEM "Запуск с приоритетом High", em_start_priorityhigh
       MENUITEM "Запуск с приоритетом Wait", em_start_prioritywait
       MENUITEM "Запуск с приорит. RealTime", em_start_priorityrealtime
     END_POPUP
END_POPUP

[em_start_prioritylow]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /low "Start in Low Priority" "%P%%i"
menu=Start in Low Priority
[em_start_prioritynormal]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /normal "Start in Normal Priority" "%P%%i"
menu=Start in Normal Priority
[em_start_priorityhigh]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /high "Start in High Priority" "%P%%i"
menu=Start in High Priority
[em_start_priorityrealtime]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /realtime "Start in RealTime Priority" "%P%%i"
menu=Start in RealTime Priority
[em_start_prioritywait]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /wait "Start in Wait" "%P%%i"
menu=Start in Wait
[em_start_priorityabovenormal]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /abovenormal "Start in Above Normal Priority" "%P%%i"
menu=Start in Above Normal Priority
[em_start_prioritybelownormal]
cmd=%commander_path%\Plugins\exe\Hidcon.exe %comspec% /c for /f "delims= tokens=1" %i
param=in ('type %WF') do start /belownormal "Start in Below Normal Priority" "%P%%i"
menu=Start in Below Normal Priority



Всё предельно чётко и на своём месте, всё разложено по полочкам, а не смешано в неперевариваемую однострочную кашу из заголовков, параметров, команд, разделителей и парсеров...
Но в то же время всё в одном файле.
Один нюанс - нужно как-то разделить меню и непосредственно команды. Тут вижу по крайней мере два выхода: 1) автоматом подсчитывать где заканчивается меню путём сравнения количества POPUP и END_POPUP; 2) менжду меню и командами вставлять некий разделитель (спецсимвол или слово), по которому MENUIMG будет понимать, что дальше в файле содержатся команды.


DreamLair.net

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

На сайте с: 28.02.2012
Город: Владимир
Сообщений: 114
Награды: 2
Репутация: 4
Цитата (LonerD)
Берём самое обычное меню Тотала - mnu-файл. Берём самый обычный файл с командами. Пусть это будет usercmd.ini или Wcmd_eng.ini или любой другой, обзовём его как угодно. И всё, больше ничего не нужно. MNUFILE||EMFILE(S)||#THEME||$TITLE В параметрах указываем путь к mnu-файлу, путь к файлу с em-коммандами. Можно предусмотреть подключение нескольких файлов с em-командами, разделив их запятыми или какими-либо разделительными символами.


Чем же ваше предложение отличается от того, что уже есть в утилите?
1. Утилита читает меню гислера.
2. Поддерживает любые команды.
3. Поддерживает чтение команд из UserCmd.ini

Зачем же вставлять [команды ниже меню], когда то же самое есть UserCmd.ini
Ведь одной и той же em_ командой я пользуюсь не только в этом меню, но и на панелях...
Зачем же дублировать и там и там?
И откуда берутся значки в вашем варианте?

Цитата (LonerD)
Один нюанс - нужно как-то разделить меню и непосредственно команды.

Разделить просто - перед меню пишется [МЕНЮ]

А как быть в таком расположении
1. Со встроенными командами и присвоению им своего значка
2. С серым полуназванием
3. Возможно есть ещё нюансы

Предлагаю объединить:

Код
P=Открыть
            M=Открыть текущий файл\tEnter / Alt+Space||cm_Return||Wcmicons.dll||5
            P=Открыть с приоритетом
              M=Запуск с приоритетом Low||em_start_prioritylow||Wcmicons.dll||125
              M=Запуск с приорит. BelowNormal||em_start_prioritybelownormal||My.dll||1225
              G=Серое название
              M=Запуск с приоритетом Normal||em_start_prioritynormal||My2.dll||125
              S (сепаратор)
              M=Запуск с приорит. AboveNormal||em_start_priorityabovenormal (без значка)
            E
E


ИМХО для меню важно:
- Название.
- Значок.
- Номер значка.
- Имя Команды при вызове.

Такое меню парсить проще - ни пробелов, ни запятых, ни кавычек, тем более, что есть команда в Autoit IniReadSection

+ меню является СЕКЦИЕЙ , и в таком файле можно прописать кучу всяких меню.
А команды класть куда угодно.

Идея asmadeus тоже имеет право на существование, тем более Андрей, готов осуществить нетолько эти идеи... за что ему отдельное спасибо

+ не надо создавать команды, а всё в одном месте

- это синтаксис, но к любому привыкаешь, помню как html первый раз увидел, а сейчас всё просто

Внесу и туда свои 6 копеек :D

Код
M=::{20D04FE0-3AEA-1069-A2D8-08002B30309D}¦298¦Родной компьютер      Win+ E  
  S
  M=%WINDIR%\System32\taskmgr.exe¦299¦Диспетчер Задач          Ctrl+Shift+Esc
  M=%WINDIR%\System32\control.exe¦300¦Панель Управления     Alt+T
  S
  M=notepad.exe¦%P%N¦551¦Открыть файл под курсором в NotePad
  P=Управление питанием компьютера
    M=%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe¦monitor_off¦2012¦Погасить монитор  
    M=shutdown¦-s -t 0¦30¦Выключение              Ctrl+Shift+Alt+Del  
  E


И уже не так страшно, но опять же расстановка
Сначала лучше "погасить монитор", а потом всё остальное :D

Код
M=Погасить монитор¦%COMMANDER_PATH%\Utilities\Systems\PowerOff\PowerOff.exe¦monitor_off¦2012¦


Сообщение отредактировал GGG8 - Четверг, 14.03.2013, 02:52
 
  • Страница 1 из 19
  • 1
  • 2
  • 3
  • 18
  • 19
  • »
Поиск:

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