[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 145 из 145
  • «
  • 1
  • 2
  • 143
  • 144
  • 145
Модератор форума: 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
Город: Сочи, Хоста
Сообщений: 7133
Награды: 139
Репутация: 122
Аверин Андрей
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
Город: Сочи, Хоста
Сообщений: 7133
Награды: 139
Репутация: 122
Аверин Андрей
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?
И, так же, составлялся список этих команд в файле, чтобы потом можно было уже решать, что с ними делать...
 
Форум » • Total Commander • » Кнопки для Total Commander » ЗАКАЗ КНОПОК
  • Страница 145 из 145
  • «
  • 1
  • 2
  • 143
  • 144
  • 145
Поиск:

Сообщите о находке всему миру:
Рейтинг@Mail.ru Тиц и pr сайта Яндекс.Метрика

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