Создание пользовательского меню для вызова команд утилиты TCIMG.
zmenu=Section, ||Flag
Параметры:
Section
Имя секции. Section - имя секции в файле .tcg, в котором прописывается меню. Если имя секции начинается с tray_ , то меню создаётся в трее. Если имя секции начинается с hotkey_ , то создаётся контекстное меню, которое вызывается по заданным горячим клавишам.
Дополнительные параметры:
Flag
Проверка. 1 - если процесс меню существует, то перезапустить; если процесс не существует, то запустить. 2 - если процесс меню существует, то завершить. 3 - если процесс меню существует, то перезапустить; если процесс не существует, то не запускать.
Примечания:
• Для создания пользовательского меню в новом или существующем файле .tcg в именной секции прописываются пункты и подменю. Если секция создаётся в новом файле .tcg, то для подключения необходимо прописать его в ключ TCG в секции [Setting] в TCIMG.ini или TCIMGU.ini
• Каждое подменю начинается с команды POPUP, за ней через пробел следует имя подменю. Пример записи:
POPUP Буфер обмена
• Пункт меню определяется следующим образом: После команды MENUITEM через пробел следует текст пункта меню, далее через заданный разделитель в ключе Delimeters следует(ют) команда(ы) утилиты. • Для установки "серого" некликабельного пункта используется GREYITEM Пример записи:
MENUITEM Перевести во "все строчные"#@#bufsr=??1 GREYITEM Серый пункт меню
• Командой SEPARATOR можно добавить горизонтальную линию-разделитель. • Каждое всплывающее меню (POPUP) заканчивается командой END_POPUP. Пример записи:
POPUP Буфер обмена MENUITEM Перевести во "все строчные"#@#bufsr=??1 MENUITEM Перевести во "ВСЕ ЗАГЛАВНЫЕ"#@#bufsr=??2 SEPARATOR MENUITEM Перевести "Как в предложении"#@#bufsr=??3 MENUITEM Перевести "Начало Слов С Заглавной"#@#bufsr=??4 MENUITEM Инверсия регистра символов#@#bufsr=??5 END_POPUP
• Для установки значка пункту или заголовку подменю необходимо через разделитель прописать относительный или абсолютный путь к значку или путь к библиотеке со значками и номер значка через запятую: Пример записи:
POPUP Буфер обмена#@#%COMMANDER_PATH%\Wcmicons.dll,5 MENUITEM Перевести во "все строчные"#@#bufsr=??1#@#D:\TC IMAGE\Icons.ico MENUITEM Перевести во "ВСЕ ЗАГЛАВНЫЕ"#@#bufsr=??2#@#%WINDIR%\System32\shell32.dll,131 END_POPUP
• Для установки цветного квадратного значка пункту или заголовку подменю необходимо через разделитель прописать RGB цвет: Пример записи:
POPUP Буфер обмена#@#FFEBCD MENUITEM Перевести во "все строчные"#@#bufsr=??1#@#FF0000 MENUITEM Перевести во "ВСЕ ЗАГЛАВНЫЕ"#@#bufsr=??2#@#0000FF END_POPUP
• Для сокращения могут использоваться первые буквы P (POPUP), E (END_POPUP), M (MENUITEM), G (GREYITEM), S (SEPARATOR)
• Ключи для меню в трее: Delimeters - [обязательный]. Разделитель между названием, командой и значком. TrayIcon - устанавливает отличающий значок для меню в трее. Прописывается относительный или абсолютный путь к значку или путь к библиотеке со значками и номер значка через запятую. TrayHint - устанавливает подсказку для значка меню в трее. TrayClick - устанавливает способ вызова меню трея. Может быть суммой значений: 0 - меню трея никогда не появится при клике мыши. 1 - нажатием первичной кнопки мыши. 2 - отпусканием первичной кнопки мыши. 4 - двойным кликом первичной кнопки мыши. 8 - нажатием вторичной кнопки мыши. 16 - отпусканием вторичной кнопки мыши. 32 - двойным кликом вторичной кнопки мыши. 64 - наведением на иконку в трее. Color1 - RGB цвет корневого меню. Color2 - RGB цвет подменю. Style - стиль меню: 0 - обычное меню (по умолчанию). 1 - не отводит место слева от пункта для галочки/значка. Пример записи:
POPUP Информация MENUITEM Отображение информации процессов#@#infos=2||1#@#%COMMANDER_PATH%\Wcmicons.dll,4 MENUITEM Отображение информации об окнах#@#infos=2||2#@#%TCIMG_PATH%\Wcmicons.dll,4 END_POPUP
• Ключи для контекстного меню: Delimeters - [обязательный]. Разделитель между названием, командой и значком. Number - [обязательный]. Номер вызываемого. Важно при взаимодействии команды zmenz (обратного вызова) ,если запускаются несколько hotkey_Menu HotKey - [обязательный]. Строка последовательности нажимаемых клавиш. ('!' - эмулирует клавишу ALT, '+' - SHIFT, '^' - CTRL, '#' - WIN, остальные значения в таблице клавиш см. Дополнение№1) → Используются латинские буквы клавиш клавиатуры в нижнем регистре. → Два меню с одним и тем же набором последовательности нажимаемых клавиш будут запущены, но во 2-м горячие клавиши работать не будут. → Горячие клавиши не могут быть установлены, если они встроены в Windows (Ctrl+Alt+Delete, Ctrl+Shift+Esc, Win+B ...), если они зарегистрированы другими программами. → С версии 8.9 ключ может быть и необязательным, если используется вызов меню через команду zmenz Color1 - RGB цвет корневого меню. Color2 - RGB цвет подменю. Style - стиль меню: 0 - обычное меню (по умолчанию). 1 - не отводит место слева от пункта для галочки/значка. При создании контекстного меню значок в трее не создаётся. Пример записи:
MENUITEM Вставить фразу#@#;;вставка фразы с записью в буфер обмена MENUITEM Вставить фразу#@#::вставка фразы без записи в буфер обмена POPUP Информация MENUITEM Отображение информации процессов#@#infos=2||1#@#%COMMANDER_PATH%\Wcmicons.dll,4 MENUITEM Отображение информации об окнах#@#infos=2||2#@#%TCIMG_PATH%\Wcmicons.dll,4 END_POPUP
Если командная строка начинается с ;; то последующая строка будет вставлена в активное приложение с записью в буфер обмена. Если командная строка начинается с :: то последующая строка будет вставлена в активное приложение без записи в буфер обмена. Дополнительные символы, которые можно использовать в строке: "@CR" - Символ возврата каретки, Chr(13), "@LF" - Символ перевода строки, Chr(10), "@CRLF" = @CR & @LF, "@TAB" - Символ Tab, Chr(9)
• Команды для меню: Если в командах используются параметры Total Commander (%p, %t, %WL ... см. Дополнение№7), то они будут запущены через UserCmd.ini, при этом в относительных путях необходимо удваивать знак процента (%%WINDIR%%). Если в командах не используются параметры Total Commander, то они будут запущены напрямую через TCIMG.
Может выглядеть следующим образом:
• Количество меню: Может быть запущено несколько экземпляров меню, но с разными настройками. Вторичный запуск меню с настройками одной и той же секции игнорируется. Для запуска команды вместе с запуском Total Commander см. Дополнение№4.
Дополнительные возможности:
• Модуль "Слежение за буфером обмена": В любом месте меню, где встретится тег $CLIP$ будет создано меню, пунктами которых будут фразы записанные в буфер обмена. Имена и содержимое пунктов заполняется сверху вниз, в зависимости от изменения текстового буфера обмена. Ключи определяющие вид модуля: → Clip - определяет количество пунктов. → ClipLen - определяет максимальное число символов названия пунктов. → ClipIconMenu - устанавливает значок для заголовка подменю "Слежение за буфером". → ClipIconItem1 - устанавливает значок для "пустых" пунктов. → ClipIconItem2 - устанавливает значок для "не пустых" пунктов. → ClipColor - устанавливает RGB цвет для подменю "Слежение за буфером". Пример записи:
При нажатии на "не пустом" пункте содержимое будет записано в буфер обмена. Для контекстного меню, которое вызывается горячими клавишами есть дополнительные возможности при нажатии на пункте: → При зажатии клавиши SHIFT содержимое пункта вставляется в активный элемент окна. → При зажатии клавиши CTRL содержимое пункта записывается в буфер обмена + вставляется в активный элемент окна. → При нажатии на пункте правой кнопкой мыши содержимое пункта вставляется в активный элемент окна.
!!! Модуль игнорирует буфер обмена при вызове утилиты, в параметрах которой есть команда clpclr
• Дополнительные пункты: Дополнительные обязательные пункты: "Перезапуск", "О программе", "Выход" прописываются в конце меню через разделитель. Ключи определяющие вид пунктов: → ItemPlus - 0 - пункты создаются в корневом уровне. 1 - пункты создаются в подменю "Дополнительно", путь позволяет установить значок для подменю. → Color3 - устанавливает RGB цвет для подменю. → ItemProgam - 0 - устанавливать значок, 1 - не устанавливать для пункта "О программе". → IconRestart - устанавливает значок для пункта "Перезапуск". → IconExit - устанавливает значок для пункта "Выход".
• Отдельный цвет для каждого подменю: Для установки разного цвета для каждого подменю в 3-м параметре POPUP через разделитель (после значка) прописывается RGB цвет: Пример записи:
• Перенос подменю и пунктов в отдельные колонки: Для переноса пунктов или подменю в 4-м параметре POPUP или MENUITEM через разделитель прописывается тег $BREAK$ Пример записи:
POPUP Буфер обмена#@#%TCIMG_PATH%\TCIMG.dll,13#@#FFEBCD#@#$BREAK$ MENUITEM Перевести во "все строчные"#@#bufsr=??1#@#FF0000#@#$BREAK$ ...
Добавлено в версии 29.1 При использовании тега $BREAK$ можно воспользоваться ключом Break
;; Break - при использовании $BREAK$ ; 1 - колонки отделяются вертикальной линией, 0 - без вертикальной линии Break=1
• Запись информации о запущенном процессе: При запуске в TCIMG.ini в секцию [ZMenu] в ключ TrayPID записывается PID запущенного процесса меню в трее При запуске контекстного меню информация записывается в ключи: N_PID - записывается PID процесса меню N_HGUI - записывается хендл окна, которому принадлежит меню N_TITLE - записывается заголовок окна, которому принадлежит меню N_HMENU - записывается хендл меню Где N_... - номер запущенного меню Информацию ключей можно использовать в дальнейшей автоматизации.
Контекстное меню можно вызывать не только по нажатию горячих клавиш, но и через ярлык или кнопку, создав с помощью команды keybd необходимый вызов: Пример кнопки:
В версии 8.9 появилась возможность вызывать контекстное меню с помощью команды zmenz, не задействуя горячие клавиши
• Модуль "Избранное". В версии 8.2 появилась возможность добавлять и удалять пункты из избранного во время работы утилиты: → Для появления меню необходимо вставить в корневой уровень меню пункты: Пример записи:
POPUPF Избранное END_POPUPF
→ Название может быть любым, его же необходимо прописать в ключе FavouritesName Ключи определяющие вид пунктов: → FavouritesName - имя модуля "Избранное" → FavouritesLenItem - максимальная длина текста пунктов в модуля "Избранное" → FavouritesInsert - 1 - вставлять пункты в начало списка, 2 - вставлять в конец списка → FavouritesIconItem1 - устанавливает иконку для модуля "Избранное" → FavouritesIconItem2 - устанавливает иконку для пунктов модуля"Избранное" → FavouritesColor - устанавливает RGB цвет модуля "Избранное" Пример записи:
• Для добавления пунктов в меню должен быть Модуль "Слежение за буфером обмена" (тег $CLIP$) • Чтобы добавить пункт необходимо, удерживая ПРОБЕЛ, нажать на не пустой строке пункта модуля "Слежение за буфером обмена" левой кнопкой мыши. • При этом из строки буфера обмена будет создан пункт в модуле "Избранное" • Этим пунктом (строкой) можно пользоваться на постоянной основе. • Строка преобразовывается и автоматически записывается в файл меню. • Так же созданные пункты можно "вручную" перенести в другой раздел и "избранное" будет создаваться заново. • Для удаления из модуля "Избранное" необходимо, удерживая ПРОБЕЛ, нажать на пункте левой кнопкой мыши. • При этом пункт удаляется из файла меню.
• При добавление/удалении меню автоматически перезапускается (при этом модуль "Слежение за буфером" очищается) • Тег $CLIP$ должен находится в любом месте ВНЕ модуля "Избранное"
zmenu=hotkey_Menu_Example zmenz=1||2 ;; запустить меню, вызвать и закрыть процесс
zmenu=hotkey_Menu_Example ;; создать контекстное меню для запуска команд утилиты TCIMG, вызывается по заданным горячим клавишам
zmenu=hotkey_Menu_Info zmenz=3||2 ;; меню с различной информацией
zmenu=hotkey_Menu_Line_Example zmenz=2||2 ;; запустить меню, вызвать и закрыть процесс
zmenu=hotkey_Symbols zmenz=4||2 ;; запустить меню меню Символов
zmenu=tray_Menu_Example ;; создать меню в трее для запуска команд утилиты TCIMG
zmenu=tray_Menu_Example||1 ;; создать меню в трее для запуска команд утилиты TCIMG; если процесс меню существует, то перезапустить
zmenu=tray_Menu_Example||2 ;; создать меню в трее для запуска команд утилиты TCIMG; если процесс меню существует, то завершить
zmenu=tray_Menu_Example||3 ;; создать меню в трее для запуска команд утилиты TCIMG; если процесс меню существует, то перезапустить, если не существует, то не запускать