View previous topic :: View next topic |
Author |
Message |
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Sat Jul 25, 2020 08:57 Post subject: |
|
|
Вариант для TC 9.0+ с блокировкой перерисовки активного файлового списка (как в предыдущем сообщении, но без команды 2918 - Обновить выбранные эскизы, которая может сильно нагружать TC при выделении графических файлов): Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(msg($432,1004+msg($432,1000))==2,sendmsg(msg($432,3),$0B,0)+tcm(2049)+tcm(2053)+tcm(2053) +varset(1,msg($432,1006+msg($432,1000)))+tcm(2054)+msg($433,2936,varget(1)-msg($432,1006+msg($432,1000)))+sendmsg(msg($432,3),$0B,1)+tcm(2017),tem(em_>Выделите_2_объекта!))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными | Поскольку обнаружил, что в этом варианте блокировки всё-таки требуется итоговая перерисовка списка, а универсальной команды (кроме redraw с передёргиванием всего окна TC) для этого пока не найдено, то в итоге от блокировки отказался, а здесь приведу ещё одну "заплатку" для рассматриваемого случая. Для перерисовки в код кнопки добавлена команда 2017- Копировать в буфер имена файлов, но она затрёт буфер обмена именами выделенных файлов...
Last edited by sa on Wed Jul 29, 2020 21:30; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 25, 2020 11:54 Post subject: |
|
|
Quote: | как в предыдущем сообщении, но без команды 2918 | Для варианта с правильным сообщением это поправимо. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Mon Jul 27, 2020 17:50 Post subject: |
|
|
При остающемся неизменным алгоритме работы кнопки (перейти к первому выделенному объекту и выполнить команду "2936 Выделить файл под курсором, перейти к следующему" с параметром, равным разности запрошенных у TC номеров выделенных объектов), добавлю ещё один способ организации сообщения об ошибке – в заголовке, у меня там шрифт крупнее, чем в самом окне : Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(msg($432,1004+msg($432,1000))==2,tcm(2049)+tcm(2053)+tcm(2053)+varset(1,msg($432,1006+msg($432,1000)))+tcm(2054) +msg($433,2936,varget(1)-msg($432,1006+msg($432,1000))),tem(`em_>Выделено:<`msg($432,1004+msg($432,1000))`>`)+eval(settext_wait(`Выделите 2 объекта!`,findwnd(`#32770`))))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными | Сообщение, у которого меняется заголовок, может быть заголовком сообщения о нереализованной функции, как например, для функции tem(`em_>…>`) в коде кнопки или для более коротких функций вроде tem(em_) и tcm(1,1). А может быть и заголовком сообщения какой-нибудь внутренней команды TC, например, "О программе" tcm(690,1) или "Подсчитать занимаемое место" tcm(530,1) – может пригодиться при выделении файлов в обычных папках. Для пробы любую из этих функций надо вставить вместо tem(`em_>…>`), перед +eval.
P.S.Пришлось снова отказаться от блокировки/разблокировки теперь уже активного файлового списка sendmsg(msg($432,3),$0B,0/1): после неё тоже требуется дополнительная перерисовка панели. Заметно в случае, когда выделение остаётся неизменным по составу объектов, хуже того, если при этом ещё и смещается на панели в другое место. Можно увидеть на примере кнопки из предыдущего сообщения.
Стандартный вариант с redraw() не нравится, команда 2918 и сдвоенные 2012 (или 330) имеют свои недостатки.
Last edited by sa on Tue Jul 28, 2020 16:38; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 28, 2020 12:30 Post subject: |
|
|
Это всё, конечно, весело-забавно, не иначе как для топика "околокоммандерный ЮмАр". )
Но я лучше предложу что-то поинтересней с добавкой в свой код 3-х вн. команд, дабы не зависеть от числа 2 и не заморачиваться со случайным выделением в процессе выбора элементов:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
if(msg(1074,msg(1074,1000)+1004)>1,sendmsg(msg(1074,3),$0B,0)+tcm(2057)+tcm(2054)+tcm(2053)+varset(1,msg(1074,1006+msg(1074,1000)))+tcm(2049)+tcm(2054)+tcm(2053)+tcm(2054)+msg(1075,2936,varget(1)-msg(1074,1006+msg(1074,1000)))+sendmsg(msg(1074,3),$0B,1),tcm(-1,1)+eval(settext_wait("` [✖] Ошибка! Выделите > 1 объекта!`",findwnd(Static,,findwnd(#32770)))))
wciconex.dll,46
Выделить всё в границах крайних выделенных объектов | Если курсор стоял выше последнего выделенного объекта, то для избежания артефактов обновление эскизов можно вызывать только в случае совпадения числа до и после выделения:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
varset(1,msg(1074,msg(1074,1000)+1004)) if(varget(1)>1,sendmsg(msg(1074,3),$0B,0)+tcm(2057)+tcm(2054)+tcm(2053)+varset(2,msg(1074,1006+msg(1074,1000)))+tcm(2049)+tcm(2054)+tcm(2053)+tcm(2054)+msg(1075,2936,varget(2)-msg(1074,1006+msg(1074,1000)))+sendmsg(msg(1074,3),$0B,1)+if(varget(1)==msg(1074,msg(1074,1000)+1004),tcm(2918)),tcm(-1,1)+eval(settext_wait("` [✖] Ошибка! Выделите > 1 объекта!`",findwnd(Static,,findwnd(#32770)))))
wciconex.dll,46
Выделить всё в границах крайних выделенных объектов | Но понятно, что мало кому понадобиться выделять уже выделенное. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Fri Jul 31, 2020 17:13 Post subject: |
|
|
При так и остающемся неизменным алгоритме работы кнопки, ещё пара способов сообщения об ошибке. Первый - с командой cm_List, позволяющий использовать пробелы в строке внушительных размеров, с большим восклицательным знаком, подойдёт при работе в обычных папках:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(msg($432,1004+msg($432,1000))==2,tcm(2054)+tcm(2053)+tcm(2053)+msg($433,2936,msg($432,1006+msg($432,1000))+ tcm(2054)-msg($432,1006+msg($432,1000))),tem(`cm_List Вместо `msg($432,1004+msg($432,1000))` выделите 2 объекта!`))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными | Второй - если требуется универсальное средство. MVV (автор TCFS2) предлагал на форуме в пользовательских командах тотала прописать утилиту, которая показывает окошки с сообщениями и выкладывал простейшую программку для этого, размером с килобайт. В файле usercmd.ini она может быть записана, например, так:
Quote: | [em_MsgBox]
cmd=%COMMANDER_PATH%\Addon\TCFS2\MessageBox.exe
param=%Z%A | Чтобы использовать её в кнопке, достаточно вместо cm_List указать em_MsgBox. |
|
Back to top |
|
|
palle
Joined: 15 Apr 2021 Posts: 5
|
(Separately) Posted: Sun Apr 25, 2021 21:10 Post subject: |
|
|
Циклическое изменение размера эскизов.
Code: |
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\ADD\TC\TCFS2\TCFS2.exe
/ef "if(S_viewMode==269, if(eval(tcini(AllResolutions, TCFSThumbScaleFactor, #))==16, msg($0433, 2953, 32, 0) + set_tcini(AllResolutions, TCFSThumbScaleFactor, 32), if(eval(tcini(AllResolutions, TCFSThumbScaleFactor, #))==32, msg($0433, 2953, 49, 0) + set_tcini(AllResolutions, TCFSThumbScaleFactor, 49), if(eval(tcini(AllResolutions, TCFSThumbScaleFactor, #))==49, msg($0433, 2953, 100, 0) + set_tcini(AllResolutions, TCFSThumbScaleFactor, 100), if(eval(tcini(AllResolutions, TCFSThumbScaleFactor, #))==100, msg($0433, 2953, 16, 0) + set_tcini(AllResolutions, TCFSThumbScaleFactor, 16), msg($0433, 2953, 16, 0) + set_tcini(AllResolutions, TCFSThumbScaleFactor, 16))))), tcm(269))"
shell32.dll,96
Изменить размер эскизов|вкл. -> 16% -> 32% -> 49% -> 100%
-1
|
|
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Thu Dec 16, 2021 16:50 Post subject: |
|
|
На основе запроса. Кнопка с утилитой TCFS2.
Функции дополнительного модуля TCFS2Tools не используются.
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_cd, cmd, `cd`) set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_cd, param, `%A%Z`)"
/ei "swCD ( `|*\` , `*.*` )"
wcmicons.dll,24
Переключатель: только файлы ( ||*\ ) и все ( *.* ) | В файле TCFS2.ini, в секцию [Items] потребуется добавить строки:
Code: | swCD_L=set_style(# & ~$00000010) tem(`em_cd `#2), style(# & $00000010) | set_style(# | $00000010) tem(`em_cd `#1)
swCD_R=set_style(# & ~$00000020) tem(`em_cd `#2), style(# & $00000020) | set_style(# | $00000020) tem(`em_cd `#1)
swCD=run_item(swCD_R, #1, #2), eval(msg($432,1000)-1) | run_item(swCD_L, #1, #2) | Кнопка использует тоталовскую команду CD и может применяться для переключения между двумя вариантами фильтрации (по маскам файлов или сохранённым шаблонам поиска, перед именем шаблона требуется указание символа >), а также для попеременной смены каталога/архива или позиционируемого файла в панели (в сочетании с фильтрацией или без неё).
Варианты должны быть заключены в косые кавычки `` и записаны через запятую.
Если пользовательская команда em_cd в TC уже создана, то последовательность /ef “set _ini … `%A%Z`)" в кнопке можно убрать. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Thu Apr 27, 2023 14:41 Post subject: |
|
|
Кнопка на основе запроса.
Code: | TOTALCMD#BAR#DATA
cm_SelectAllBoth,em_MoveToParent,cm_GoToParent,cm_CountDirContent,cm_Delete
WCMICONS.DLL,63
Переместить ВСЕ ФАЙЛЫ и ПАПКИ на уровень вверх|и предложить удалить родительскую папку | Потребуется завести в usercmd.ini пользовательскую команду:
Code: | [em_MoveToParent]
cmd=MULTIRENAME==MoveToParent | а в инструменте группового переименования (Ctrl+M) в качестве маски для имени файла записать ..\[N] (оставив все остальные параметры по умолчанию) и сохранить шаблон (F2) с именем MoveToParent.
Версия TC 10.50 и свежее.
Если родительская папка не была удалена (или была воссоздана), то в ИГП работает функция отката для перемещённых объектов. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Thu Sep 28, 2023 15:19 Post subject: |
|
|
Кнопка для переименования файла/папки под курсором в инструменте группового переименования (ИГП).
В диалоге ИГП имя и расширение редактируются в отдельных полях, видны старое и новое имя, после переименования есть возможность отката (в том числе и после закрытия ИГП, но в рамках текущего сеанса работы TC).
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "tem(cm_ClearAll) varset(1,msg($432,1006+msg($432,1000))-msg($432,1008+msg($432,1000))) if(varget(1)<0, varset(1,2147483647)) tem(cm_Select) tem(`cm_GoToFirstEntry `varget(1)) tem(cm_ClearAllFiles) set_ini(`%%COMMANDER_PATH%%\usercmd.ini`, em_temp, cmd, `MULTIRENAME $tmp`) if(msg($432,1004+msg($432,1000)),set_tcini(Rename, $tmp_name, `%N`)+set_tcini(Rename, $tmp_ext)+tem(cm_ClearAllFolders), set_tcini(Rename, $tmp_name, `"%O"`)+set_tcini(Rename, $tmp_ext, `"%E"`)) set_tcini(Rename, $tmp_params, `0|1|1|1`) set_tcini(Rename, $tmp_search, `*\`) set_tcini(Rename, $tmp_replace) tem(em_temp)"
WCMICONS.DLL,46
Переименовать в ИГП файл/каталог под курсором
-1 | Требуется утилита TCFS2. Функции дополнительного модуля TCFS2Tools не используются.
Версия TC 9.0 и свежее. |
|
Back to top |
|
|
Orion9
Joined: 01 Jan 2024 Posts: 414
|
(Separately) Posted: Sat Feb 24, 2024 13:08 Post subject: |
|
|
Довольно простой, но эффективный способ переключения иконки на панели инструментов (для любой кнопки) при помощи плагина Autorun и TCFS2.
Пример для команды 2957.
Code: |
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utilites\TCFS2\TCFS2.exe
/ef "msg($0B, 0, 0) tcm(2957) msg(regmsg(ColorMessage), 0, 0) tcm(2945) msg($0B, 1, 0) run_item(update)"
%COLOR_ICON%
Цвета для типов файлов (вкл./выкл.)
-1 |
autorun.cfg
Code: | Func SetColorByType()
IniRead nIco %COMMANDER_INI% "Configuration" "ColorFilters" 1
If nIco = 1 Then
SetEnv COLOR_ICON "%COMMANDER_PATH%\Icons\Clsw\2.ico"
Else
SetEnv COLOR_ICON "%COMMANDER_PATH%\Icons\Clsw\6.ico"
EndIf
EndFunc
SetMessageAction "ColorMessage" SetColorByType |
Единственный недостаток - иконки должны быть в виде отдельных фалов, TC не раскрывает переменную окружения с индексом (через запятую) как следует. |
|
Back to top |
|
|
Orion9
Joined: 01 Jan 2024 Posts: 414
|
(Separately) Posted: Fri Apr 12, 2024 00:53 Post subject: |
|
|
Кнопка информирует о новых файлах на wincmd.ru. Подробности в архиве:
Hidden text MIME-Version: 1.0
Content-Type: application/octet-stream; name="NewsBar.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="NewsBar.7z"
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
AA==
|
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Thu Jun 20, 2024 15:11 Post subject: |
|
|
Кнопка для слияния выбранных папок:
Code: | TOTALCMD#BAR#DATA
cm_Renmov
/O5G1T="%Q%P%N:~0,25##X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.*"
WCMICONS.DLL,63
Слияние выбранных папок в одну с именем папки под курсором,|обрезанным до 25 символов и дополненным ##X.X.X...
-1 | Версия TC 11.00 и свежее.
Настройка перезаписи файлов (ключ O), немедленный старт копирования (ключ G) и длина исходного имени (25) - по вкусу.
Для пробы удобнее команду cm_Renmov заменить на cm_Copy. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2628
|
(Separately) Posted: Tue Aug 13, 2024 09:58 Post subject: |
|
|
Кнопка для поиска дубликатов:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_tcini(Searches,$Dupl_dupeplugins,`[=tc.writedate.YMD]`) set_tcini(Searches,
$Dupl_SearchFlags,`0|002002000020|||||||||1011|0||`) set_tcini(Searches,$Dupl_SearchFor,``) set_tcini(Searches,$Dupl_SearchIn,``) set_tcini(Searches,$Dupl_SearchText,``) set_ini(`%%COMMANDER_PATH%%\usercmd.ini`, em_temp, cmd,`LOADSEARCH==$Dupl`) tcm(524) tcm(2018) tem(`cm_Wait 0,em_temp`) tcm(2033) if(!msg($432,1004+msg($432,1000)) & !null("%N"),tcm(540)+tcm(2033)) tcm(2053) tcm(524)"
wcmicons.dll,7
Искать дубликаты по ДАТЕ |При отсутствии дубликатов у файла под курсором, обновить панель, сбросив результаты поиска | Требуется утилита TCFS2. Функции дополнительного модуля TCFS2Tools не используются.
Версия TC 11.02 и свежее.
Для поиска дубликатов не по дате, а по имени, можно заменить в поле команды [=tc.writedate.YMD] на [=tc.name], по типу – на [=tc.ext], по размеру – на [=tc.size], по полному имени - на [=tc.fullname].
Для поиска дубликатов по содержимому (без учёта данных плагинов) надо заменить в поле параметров комбинацию флагов 1011 на 1110, а в поле команды убрать [=tc.writedate.YMD] (оставив только ``).
Поиск производится для наглядности только в текущей папке – без учёта подкаталогов. Если требуется неограниченная глубина поиска, например, при поиске дубликатов по полному имени, то в комбинации флагов следует убрать последний 0 (перед ||`).
Если курсор установить на .., то результаты поиска дубликатов не будут сбрасываться.
Кнопка подходит и для TC 10.00 - TC 11.01, но в случае использования стилей оформления с пользовательскими наборами колонок возникает проблема с итоговым позиционированием на файле под курсором - при отсутствии у него дубликатов.
Ещё вариант (TC 10.00 и свежее).
Кнопка для поиска дубликатов без привязки к файлу под курсором и без сброса результатов, с неограниченной глубиной поиска:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_tcini(Searches,$Dupl_dupeplugins,`[=tc.writedate.YMD]`) set_tcini(Searches,
$Dupl_SearchFlags,`0|002002000020|||||||||1011|||`) set_tcini(Searches,$Dupl_SearchFor,``) set_tcini(Searches,$Dupl_SearchIn,``) set_tcini(Searches,$Dupl_SearchText,``) set_ini(`%%COMMANDER_PATH%%\usercmd.ini`, em_temp, cmd,`LOADSEARCH==$Dupl`) tem(`em_temp`)"
wcmicons.dll,7
Искать дубликаты по ДАТЕ |
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|