[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Andrey_A, ХарВик, chip642  
Форум » • Total Commander • » Кнопки для Total Commander » ЗАКАЗ КНОПОК
ЗАКАЗ КНОПОК
ХарВикДата: Вторник, 17.04.2012, 21:49 | Сообщение № 1
Генералиссимус

На сайте с: 29.01.2012
Город: Черкассы
Сообщений: 1629
Награды: 18
Репутация: 18
ЗАКАЗ КНОПОК




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


Группа TCIMG в Telegram

.
 
worklanboxДата: Среда, 26.07.2023, 23:34 | Сообщение № 2161
Рядовой

На сайте с: 18.02.2023
Сообщений: 4
Награды: 0
Репутация: 0
Ок) Печатать - не дрова рубить)
Задача:
- Создать список файлов *.bar и *.mnu (выполнено)
- Скопировать файл WCMD_RUS.ini в папку "ТС/Temp" и Найти в нём команды, которые используются/не используются в файлах *.bar и *.mnu из вышесозданного списка (вот тут проблема....)
- Создать в папке "ТС/Temp" списки используемых/не используемых команд (выполнено, остальное зависит от пункта выше)
- Удалить в файле WCMD_RUS.ini (в папке "ТС/Temp") все "не используемые" команды (выполнено)...

Дальше...
1) Есть WCMD_RUS.ini в виде:
Код

; em_XXX - все отправляется в "неиспользуемые", то есть, просто пропускается без проверки и удаляется
[em_Grey]
iconic=0
menu=делает неактивными и серыми разделители-названия в меню ТС.
[em_tcshell]
cmd=%Util%\TCShell\TCShell.exe
path=%Util%\TCShell\
menu=Программа для добавления в контекстные меню каталогов, дисков, ярлыков и любых файлов пункта "Open in Total Commander"
[em_TWinKey]
cmd=%Plug%\wdx\TWinKey\TwinkUtil.exe
path=%Plug%\wdx\TWinKey\
menu=TWinKey - шорткаты, табы, диски и всякая всячина
[em_TweakTC]
cmd=%Util%\TweakTC\TweakTC.exe
path=%Util%\TweakTC\
menu=TweakTC - тонкая настройка TC
[em_Impomezia]
cmd=%Util%\Impomezia\colors.exe
iconic=0
menu=Impomezia - настройка цветов файлов и папок

; em_2X2_XXX  - некоторые команды рабочие, оправляет в "неиспользуемые"
[em_8u8_clearhistory]
cmd=%COMMANDER_PATH%\CH4TC.exe
path=%COMMANDER_PATH%\
menu=Очистить историю команд TC
[em_8u8_restarttc]
cmd=%COMMANDER_PATH%\restarttc.exe
param=1000
path=%COMMANDER_PATH%\
menu=Перезагрузить TC
[em_8u8_cleartmp]
cmd=cmd /c rd %tmp% /s /q
iconic=1
menu=Очистить папку %TEMP%
[em_8u8_cleardns]
cmd=CMD /C
param=ipconfig /flushdns
iconic=1
menu=Очистить DNS кэш
[em_8u8_renewip]
cmd=%Script%\NewIP.cmd
path=%Script%\
menu=Сменить динамический IP
[em_8u8_cdopen]
cmd=%NH%
param=cdrom open
path=%COMMANDER_PATH%\
menu=Открыть лоток CD\DVD

; em_XXX_XXX
[em_sys_cleaner]
cmd=%SystemRoot%\System32\cleanmgr.exe
[em_sys_driver]
cmd=verifier.exe
[em_sys_BD]
cmd=syskey.exe
[em_sys_lupa]
cmd=magnify.exe
[em_sys_tabl]
cmd=charmap.exe
[em_sys_repair]
cmd=sfc
param=/scannow

[em_restartTC_SYS]
cmd=%H%
param=restartTC_SYS.bat
path=%Script%\
iconic=1
menu=Перезапуск TC от имени системы
[em_restartTC_TI]
button=
cmd=%H%
param=restartTC_TrustedInstaller.bat
path=%Script%\
[em_restartTC_NTFS]
cmd=%H%
param=restartTC_NTFS.bat
path=%Script%\
menu=Перезапуск TC с игнорированием прав NTFS

[em_set_mpcbe]
cmd=%P%\MPC-BE\_start.bat
path=%P%\MPC-BE\
menu=MPC-BE - медиаплейер
button=%P%\MPC-BE\MPC-BE\mpc-be64.exe
[em_set_playinmpcbe]
cmd=%Plug%\EXE\lst2str.exe /X:"%P%\MPC-BE\MPC-BE\mpc-be64.exe"
param=/L:%L
menu=Проиграть выделенные файлы/каталоги в MPC-BE
button=%P%\MPC-BE\MPC-BE\mpc-be64.exe
[em_set_xmplay]
cmd=%P%\XMPlay\xmplay.exe
path=%P%\XMPlay\
menu=XMPlay - аудиоплейер
[em_set_playinxmplay]
cmd=""%NH%" script "~$folder.nircmd$\Scripts\xmplay.ncl""
menu=Проиграть выделенные файлы/каталоги в XMPlay  [F12]

; и т.д...

Ну да, есть такое - понапихивал туда за долгие годы всякого и разного, отовсюду... Хозяйственный я, всё мне нужно было)))... И, изначально, по подумав, "именовал" команды в разных стилях...

2) Есть две (не зависимые друг от друга, просто аналогичные) команды на кнопки, которые проверяют наличие команд из WCMD_RUS.ini в файлах *.bar и *.mnu из созданного списка, сортируют их по спискам (рабочие-нерабочие), удаляют из WCMD_RUS.ini команды, которые не используются (не затрагивая оригинал):
а)
Цитата chip642 ()
В файле WCMD_RUS.ini оставить только используемые секции и сохранить во внутренней папке утилиты Temp.

Код

watch=1 tempxx slist=INI<2!!$f306\WCMD_RUS.ini> copyy=$f306\WCMD_RUS.ini||$f254//1 stext=$f200\Lists\PathListSearchWcmd-Ini.txt||$f254//0//Summa.txt||delim<@CRLF>||code<4> textt=GLOBALSTEXT<1>||formt<0!!(?im)(em_[a-z]+_[a-z\d]+)>||backup<0> textt=GLOBALTEXTT1<1>||?F1,3||backup<0> sends=$GLOBALSLIST??-1||<dellist=GLOBALTEXTT1<1>|2> asave=GLOBALSENDS||$f254\NotUsedSections.txt|1 delsm=$f254\Summa.txt||1 pathl=$f254 sends=$f254\NotUsedSections.txt??-1 <FOR> 1 <TO> GLOBALSENDS<0> inids=$f254\WCMD_RUS.ini||GLOBALSENDS<:INDEX:> <NEXT> textt=$f254\WCMD_RUS.ini||formt<62,59>||backup<0>

б)
Цитата chip642 ()
Вариант ниже - с сохранением в файл UsedSections.txt имён всех используемых секций в WCMD_RUS.ini и удалением всех пустых строк в отредактированном варианте. (в предыдущем варианте я оставлял не более одной пустой строки)
Задача: в файлах списка PathListSearchWcmd-Ini.txt найти неиспользуемые секции из WCMD_RUS.ini, удалить их в WCMD_RUS.ini с сохранением отредактированного WCMD_RUS.ini во временной папке "Temp" + сохранить в папке "Temp" файл NotUsedSections.txt - список имён неиспользуемых секций, и файл UsedSections.txt - список имён используемых секций.

Код

watch=1 tempxx slist=INI<2!!$f306\WCMD_RUS.ini> copyy=$f306\WCMD_RUS.ini||$f254//1 stext=$f200\Lists\PathListSearchWcmd-Ini.txt||$f254//0//UsedSections.txt||delim<@CRLF>||code<4> textt=GLOBALSTEXT<1>||formt<0!!(?im)(em_[a-z]+_[a-z\d]+)>||backup<0> textt=GLOBALTEXTT1<1>||?F1,3||backup<0> sends=$GLOBALSLIST??-1||<dellist=GLOBALTEXTT1<1>|2> asave=GLOBALSENDS||$f254\NotUsedSections.txt|1 pathl=$f254 sends=$f254\NotUsedSections.txt??-1 <FOR> 1 <TO> GLOBALSENDS<0> inids=$f254\WCMD_RUS.ini||GLOBALSENDS<:INDEX:> <NEXT> textt=$f254\WCMD_RUS.ini||formt<63,59>||backup<0>

Более подробно по этому вопросу Тут и Выше по форуму...

Создаю кнопки... А дальше:
Цитата worklanbox ()
Находит, делит, очищает, но...
Сортирует все команды только в виде em_xxx_xxx (три секции, например em_sys_notepad),
а все команды, в виде em_xxx (две секции, например em_Grey) отправляет в список "неиспользуемые", пропуская и не проверяя их наличие в *.bar и *.mnu, и удаляет, поскольку их не записывает в список "используемых"...
И, в дополнение, есть у меня там команды в виде em_8b8_xxx - с ними тоже проблема, большинство рабочих отправляется в статус "неиспользуемые"...


3) Вот тут уже вопрос: Как можно сделать команду/кнопку, чтобы искались(проверялись) команды из WCMD_RUS.ini в файдах *.bar и *.mnu из созданного списка, не только в формате em_XXX_XXX (как сделано в кнопках выше), а и в виде em_XXX, и корректно отрабатывались, а так же - em_2X2_XXX (с цифрами)? Не силен я в этом вопросе...

Как то так, если вкратце)

P.S. Ну и пример кнопки, с использованием вышеизложенных комманд...
Код

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
<HOTKEY=11> beepss copyy=$f306\WCMD_RUS.ini.bkp||$f306//1||&&\.bkp$!!||**2!! <HOTKEY=10>watch=1 tempxx slist=INI<2!!$f306\WCMD_RUS.ini> copyy=$f306\WCMD_RUS.ini||$f254//1 stext=$f200\Lists\PathListSearchWcmd-Ini.txt||$f254//0//UsedSections.txt||delim<@CRLF>||code<4> textt=GLOBALSTEXT<1>||formt<0!!(?im)(em_[a-z]+_[a-z\d]+)>||backup<0> textt=GLOBALTEXTT1<1>||?F1,3||backup<0> sends=$GLOBALSLIST??-1||<dellist=GLOBALTEXTT1<1>|2> asave=GLOBALSENDS||$f254\NotUsedSections.txt|1 pathl=$f254 sends=$f254\NotUsedSections.txt??-1 <FOR> 1 <TO> GLOBALSENDS<0> inids=$f254\WCMD_RUS.ini||GLOBALSENDS<:INDEX:> <NEXT> textt=$f254\WCMD_RUS.ini||formt<63,59>||backup<0> <HOTKEY=12> beepss openf="$f200\Lists\PathListSearchWcmd-Ini.txt"||%%PPORT%%\Office\Notepad++\notepad++.exe <HOTKEY=X> beepss slist=[tc=AM]||##path<0|0|1>||save<"$f200\Lists\PathListSearchWcmd-Ini.txt"|-2> textt="$f200\Lists\PathListSearchWcmd-Ini.txt"||formt<F63,1>||backup<0>
%ICO%,51
Добавить пути ВФ в PathListSearchWcmd-Ini.txt |с ALT - Открыть PathListSearchWcmd-Ini.txt в Notepad++ |c Ctrl - Восстановить WCMD_RUS.ini из бэкапа |с SHIFT - Поиск неиспользуемых секций в WCMD_RUS.ini, с сохранением в файл UsedSections.txt имён всех используемых секций в WCMD_RUS.ini и удалением всех пустых строк в отредактированном варианте

-1
-1


Сообщение отредактировал worklanbox - Среда, 26.07.2023, 23:52
 
Andrey_AДата: Четверг, 27.07.2023, 00:08 | Сообщение № 2162
Генералиссимус

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

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
textt=%P%N||&?(?m)^\[em_[^]\r\n]+_[^]\r\n]+\].*(?:[\r\n]+[^[\r\n][^\r\n]*)*||upd<1>
%COMMANDER_PATH%\Wcmicons.dll,1
В INI файле под курсором оставить секции вида "[em_xxx_xxx]" (вместо x любая буква), делается бекап

0
-1


Эту команду можно будет вставить в конце последовательности команд вместо %P%N прописав путь (или путь через глобальную переменую)... либо использовать отдельно.

----
P.S.
На мой взгляд поиск "действующих" em_ команд только BAR, INI, MNU файлах стало сложнее и не есть правильно, т.к. они могут быть задействованы в различных скриптах и во многих других файлах, параметрах плагинах и утилитах...
Кроме того вы же сами создаёте свою сборку - зачем плодить чужие команды
Любая очистка может пройти некорректно...

.


 
worklanboxДата: Четверг, 27.07.2023, 00:39 | Сообщение № 2163
Рядовой

На сайте с: 18.02.2023
Сообщений: 4
Награды: 0
Репутация: 0
Цитата Andrey_A ()
В INI файле под курсором оставить секции вида "[em_xxx_xxx]

Проблема в том, что там не только em_xxx_xxx нужны, а и em_xxx

Цитата Andrey_A ()
На мой взгляд поиск "действующих" em_ команд только BAR, INI, MNU файлах не есть правильно

Да, понимаю, согласен... Все, в результате, все равно буду проверять, перепроверять, бэкапить)

Цитата Andrey_A ()
Кроме того вы же сами создаёте свою сборку - зачем плодить чужие команды

Ну, я не настолько в этом спец, чтобы плавать самостоятельно) В итоге, то там в чьей-то сборке что-то взял, то там, то на форумах что-то увидел... "Это" - нужно, а "это" - потом пригодится)))
Так и понаплодилось всякого, за лет 10... Кнопки, менюшки поудалялись, а в файл команд уже страшно смотреть, чтобы вручную там порядки наводить)))
Это так, на форуме увидел, что есть возможность упростить процесс, вот и зацепился, пока время есть)


Сообщение отредактировал worklanbox - Четверг, 27.07.2023, 00:42
 
Andrey_AДата: Четверг, 27.07.2023, 01:04 | Сообщение № 2164
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
worklanbox, тестировать всё это нет возможности, возможно поможет, в команде есть регулярное выражение, которое определяет em_xxx_xxx:
Код
formt<0!!(?im)(em_[a-z]+_[a-z\d]+)>

можно с этим поиграться в рег. выражении, заменить... выше в сообщениях писал чем тестировать regex
Код
formt<0!!(?im)(em_[a-z\d_]+)>


.


 
worklanboxДата: Четверг, 27.07.2023, 02:22 | Сообщение № 2165
Рядовой

На сайте с: 18.02.2023
Сообщений: 4
Награды: 0
Репутация: 0
Цитата Andrey_A ()
a-z\d_

Вот, вроде все верно пересканировало, на первый взгляд) Благодарю!

Добавлено (28.07.2023, 14:09)
---------------------------------------------
А можно сделать кнопку, чтобы искать повторяющиеся команды в файле WCMD_RUS.ini, сравнивая по двум строчкам одновременно, по "cmd=" и "param="?
А затем, как-то указать на эти дубли...

Например, есть несколько команд с повторами, которые расбросаны по всему WCMD_RUS.ini:

Код

[em_vim_1]
cmd=%TCIMG%
param=clpclr
iconic=0
menu=Очистить «Буфер обмена»
[em_8х8_double1]
cmd=%TCIMG%
param=clpclr
menu=Очистить буфер обмена
[em_double1]
cmd=%TCIMG%
param=clpclr
menu=Очистить буфер
iconic=0

[em_vim_2]
cmd=%TCIMG%
param=vclip=x
iconic=0
menu=Менеджер буфера обмена
[em_double2]
cmd=%TCIMG%
param=vclip=x
menu=Буфер обмена

Сделать сравнение команд одновременно по строкам "cmd=" и "param=" и, например, вывести список дублей в отдельный файл, где соответствующие дубли, как-то будут помечены.
Например, дубли просто в одной строке, через пробел, или запятую:
Код

em_vim_1 em_8х8_double1 em_double1
em_vim_2 em_double2

В общем, не знаю как лучше) Может есть идеи у кого, или уже рабочий вариант поиска повторяющихся команд? Не нашел ничего такого...

Добавлено (28.07.2023, 20:20)
---------------------------------------------
И еще одна "хотелка"...
Есть код - Поиск неиспользуемых команд в WCMD_RUS.ini в *.bar и *.mnu по списку (подробнее в предыдущих сообщениях):

Код

watch=1 tempxx slist=INI<2!!$f306\WCMD_RUS.ini> copyy=$f306\WCMD_RUS.ini||$f254//1 stext=$f200\Lists\PathListSearchWcmd-Ini.txt||$f254//0//UsedSections.txt||delim<@CRLF>||code<4> textt=GLOBALSTEXT<1>||formt<0!!(?im)(em_[a-z]+_[a-z\d]+)>||backup<0> textt=GLOBALTEXTT1<1>||?F1,3||backup<0> sends=$GLOBALSLIST??-1||<dellist=GLOBALTEXTT1<1>|2> asave=GLOBALSENDS||$f254\NotUsedSections.txt|1 pathl=$f254 sends=$f254\NotUsedSections.txt??-1 <FOR> 1 <TO> GLOBALSENDS<0> inids=$f254\WCMD_RUS.ini||GLOBALSENDS<:INDEX:> <NEXT> textt=$f254\WCMD_RUS.ini||formt<63,59>||backup<0>


А как сделать, чтобы искало наоборот, команды, которые прописаны в *.bar и *.mnu по списку, но отсутствующие в WCMD_RUS.ini?
И, так же, составлялся список этих команд в файле, чтобы потом можно было уже решать, что с ними делать...
 
zybrevlДата: Четверг, 28.09.2023, 11:43 | Сообщение № 2166
Генерал-майор

На сайте с: 10.11.2018
Сообщений: 312
Награды: 13
Репутация: 10
Помогите с кнопкой:
В активной панели, в выделенный видеофайл (mp4; mkv) вставить изображение (png; jpg) под курсором (обложку)
сохранить в АП именем видеофайла, добавлять в окончание _cover

пример:
Код
ffmpeg -i Video.mp4 -i Picture.png -map 1 -map 0 -c copy -disposition:0 attached_pic -y Video_cover.mp4


Сообщение отредактировал zybrevl - Четверг, 28.09.2023, 11:59
 
shveicarДата: Пятница, 29.09.2023, 16:31 | Сообщение № 2167
Генерал-лейтенант

На сайте с: 18.05.2012
Город: Санкт-Петербург
Сообщений: 562
Награды: 10
Репутация: 23
Цитата zybrevl ()
Помогите с кнопкой:

Привет.
Сгласно вашей просьбе и на основе приведенной команды:
Код
slist=[tc=AM] aends=>o75GLOBALSLIST<1> alist=$GLOBALSLIST||test<1e!!mp4> blist=$GLOBALSLIST||test<1e!!png|jpg> start=FFmpeg||-i||GLOBALALIST<1>||-i||GLOBALBLIST<1>||-map||1||-map||0||-c||copy||-disposition:0||attached_pic||-y||GLOBALAENDS<1>Video_cover.mp4||&&hide||&&wait

Слияние происходит, это видно из размера. Для выполнения, выделяете файл видео и изображения jpg или png.


Сообщение отредактировал shveicar - Пятница, 29.09.2023, 16:32
 
zybrevlДата: Пятница, 29.09.2023, 17:08 | Сообщение № 2168
Генерал-майор

На сайте с: 10.11.2018
Сообщений: 312
Награды: 13
Репутация: 10
shveicar,
Да, работает. Спасибо.
Добавил в окончании ||upd<1>.
 
scorpkoms7494Дата: Суббота, 11.11.2023, 20:07 | Сообщение № 2169
Сержант

На сайте с: 30.03.2015
Сообщений: 38
Награды: 0
Репутация: 0
Приветствую уважаемые,нашел вот такую кнопку:
Цитата
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
swcmd=sprtr=20??tcimg=$cm2003|169¦¦sprtr=50??tcimg=$cm169|2002¦¦Separator1
wcmicons.dll,56
Просмотр эскизов папки Фото под курсором в правой панели

-1
хотелось бы сделать для левой панели,спасибо.


Сообщение отредактировал scorpkoms7494 - Суббота, 11.11.2023, 20:08
 
Andrey_AДата: Суббота, 11.11.2023, 21:55 | Сообщение № 2170
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
scorpkoms7494, возможно так:
Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
swcmd=sprtr=80??tcimg=$cm2003|69¦¦sprtr=50??tcimg=$cm69|2002¦¦SeparatorL
%COMMANDER_PATH%\Wcmicons.dll,1
Просмотр эскизов папки Фото под курсором в левой панели

0
-1


 
scorpkoms7494Дата: Воскресенье, 12.11.2023, 07:45 | Сообщение № 2171
Сержант

На сайте с: 30.03.2015
Сообщений: 38
Награды: 0
Репутация: 0
Цитата Andrey_A ()
возможно так

Благодарю,а вот так можно сделать,Просмотр эскизов папки Фото под курсором в левой панели
а окно просмотра справа,спасибо.



Сообщение отредактировал scorpkoms7494 - Вторник, 14.11.2023, 08:02
 
Andrey_AДата: Вторник, 14.11.2023, 15:13 | Сообщение № 2172
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
scorpkoms7494, не увидел ваше сообщение ранее, раз вы написали на руборде - ответил там
https://forum.ru-board.com/topic.c....1&m=1#1

.


 
scorpkoms7494Дата: Вторник, 14.11.2023, 18:32 | Сообщение № 2173
Сержант

На сайте с: 30.03.2015
Сообщений: 38
Награды: 0
Репутация: 0
Andrey_A,благодарю,то что надо,но когда в каталоге много папок с фото курсор не реагирует на перелистование, остается на первой открытой папке, приходится вкл.выкл.кнопку,не очень удобно.
 
Andrey_AДата: Вторник, 14.11.2023, 20:15 | Сообщение № 2174
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
scorpkoms7494, это уже не ко мне вопрос, а к автору тотала
Там не хватает ряда встроенных команд для этого дела...

.


 
scorpkoms7494Дата: Вторник, 14.11.2023, 21:38 | Сообщение № 2175
Сержант

На сайте с: 30.03.2015
Сообщений: 38
Награды: 0
Репутация: 0
Цитата Andrey_A ()
это уже не ко мне вопрос

И за это спасибо!
 
Форум » • Total Commander • » Кнопки для Total Commander » ЗАКАЗ КНОПОК
Поиск:

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