Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Обмен кнопками
Goto page Previous  1, 2, 3 ... , 43, 44, 45  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 10235
Location: Россия, Саратов

Post (Separately) Posted: Sat Jan 28, 2017 17:15    Post subject: Reply with quote

Dimsok
Прошу заглянуть на страницу 66 темы по обсуждению кнопок и припомнить, о чём там шла речь насчёт рабочих решений, оформления кнопок и пояснений к ним. Слишком много предлагается кнопок, которые юзер использовать без доводки не может. Хотя бы из-за путей к личным папкам в трёх последних постах (в тексте кнопки это хотя бы цветом отметить следовало). В конце концов, основной целью выкладывания кнопок должно быть удобство тех, кто будет ими пользоваться. Прошу принять к сведению, иначе модераторам действительно придётся ввести эту процедуру в какие-то пристойные берега.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Tue Mar 14, 2017 18:11    Post subject: Reply with quote

По мотивам этого запроса.
Кнопка (версия TC 9.xx) для удаления файлов/каталогов по заданной маске, регулярному выражению с символом < или шаблону поиска с символом >. Требуется утилита TCFS2 (функции дополнительного модуля TCFS2Tools не используются):
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_temp, cmd, `SELECTFILESB `
`>Файлы старше 1 недели`                                                       ) tcm(524) tem(em_temp) if(msg($432,1004+msg($432,1000)), tcm(908))"
WCMICONS.DLL,64
Удалить файлы/каталоги |по маске (например: *.bak *.old) |регулярному выражению (<[ab].*) |или шаблону поиска (>Файлы старше 1 недели)


-1
Для задания альтернативного варианта, удалить в Корзину или в обход Корзины (зависящего от настроек TC), при вызове кнопки нажать клавишу Shift.
В кнопке для команды SELECTFILES добавлен модификатор B (выделяются и файлы и папки, соответствующие маске или шаблону). Можно указать D (только папки) или убрать модификатор (только файлы).
Если сильно захочется подтвердить удаление непосредственно в кнопке, то можно заменить tcm(908))" на
tcm(908,1) + eval(send_wait(`{ENTER}`, findwnd(`#32770`))))".
В дополнение, команду удаления файлов tcm(908) при желании можно поменять на команду копирования tcm(905) или перемещения tcm(906).

Чтобы при вызове кнопки файл usercmd.ini каждый раз не перезаписывался (из-за создания утилитой временной пользовательской команды em_temp), можно самостоятельно создать пользовательские команды выделения, например:
em_selB, состоящую из команды SELECTFILESB,
em_selD, состоящую из команды SELECTFILESD и
em_sel, состоящую из команды SELECTFILES,
одну из которых, в зависимости от решаемой задачи, и указывать в кнопке:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "tcm(524) tem(`em_selB `
`>Файлы старше 1 недели`                                                       ) if(msg($432,1004+msg($432,1000)), tcm(908))"
WCMICONS.DLL,64
Удалить файлы/каталоги |по маске (например: *.bak *.old) |регулярному выражению (<[ab].*) |или шаблону поиска (>Файлы старше 1 недели)


-1
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Oct 13, 2017 02:42    Post subject: Reply with quote

Запрошено:
Quote:
TOTALCMD#BAR#DATA
%comspec% /q /c (for %# in
(%P%S) do call set "P=%%P%% %%# -title "%%~nx#"")&&call mplayer.exe -nofontconfig -really-quiet -fs -panscan 1 %%P:~4%%

Utils\MPlayer\mplayer.exe
MPlayer — воспроизвести выбранные видео на полном|экране с поочерёдным выводом имён в заголовок окна
%COMMANDER_PATH%\Utils\MPlayer\
1

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri May 04, 2018 07:02    Post subject: Reply with quote

Текст файла в буфер (по запросу) с определением OEM, ANSI, UTF-7, UTF-8, UTF-16.
Quote:
TOTALCMD#BAR#DATA
%ComSpec% /v:on /q/c echo off&set CP1251=1251&set ASCII=1251&set IBM866=866&set UTF-7=65000&set UTF-8=65001&set UCS-2=65001&for /f "tokens=1 delims=/" %# in ('
enca.exe -e -L russian
%V') do chcp !%%#!&cls&clip<%V
wcmicons.dll,45

Скопировать в буфер обмена текст файла под курсором
%COMMANDER_PATH%\Utils\Enca
1
Enca 1.13.
Enca 1.19 | Enca 1.20 (спасибо addhaloka).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10235
Location: Россия, Саратов

Post (Separately) Posted: Sat Jun 09, 2018 16:03    Post subject: Reply with quote

All
Поскольку беспрерывные призывы соблюдать правила и помещать запросы на кнопки не в этой теме, а в специальной, некоторой частью участников (причём отнюдь не только новичками) упорно игнорируются, придётся прибегнуть к более сильным мерам. Впредь откровенный оффтоп такого рода будет из этой темы попросту удаляться. Иного пути приучить кое-кого к порядку, к сожалению, не вижу. Сообщение AlexTex было в этом ряду первым номером.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Jul 09, 2018 21:06    Post subject: Reply with quote

Близко к теме:
Quote:
TOTALCMD#BAR#DATA
*%ComSpec% /v:on /q/c @echo off&for /r %# in (*.
txt) do for /f "eol=C skip=1 delims=" %h in ('certutil -hashfile "%#" MD5') do set "crc=%h"&&call robocopy "%~dp#\"
"%P!crc: =!" "%%~nx#" /MOV /NJH /NJS /NDL /NFL&cls
wpdshext.dll,4
Переместить
txt-файлы из структуры активного каталога в MD5-папки

1
Quote:
TOTALCMD#BAR#DATA
*%ComSpec% /v:on /q/c @echo off&for /r %# in (*.
txt) do for /f "eol=C skip=1 delims=" %h in ('certutil -hashfile "%#" MD5') do set "crc=%h"&& call xcopy "%#" !crc: =!\ /chikorqxy

FXSRESM.dll,11
Скопировать
txt-файлы из структуры активного каталога в MD5-папки

1
Windows Vista+. Другие алгоритмы: MD2, MD4, SHA1, SHA256, SHA384, SHA512.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Thu Jun 20, 2019 13:41    Post subject: Reply with quote

На основе запроса:
Code:
TOTALCMD#BAR#DATA
cm_ClearAll,cm_FocusTrg,cm_ClearAll,cm_FocusTrg,cm_select,em_SyncOpen=,cm_ClearAll

wcmicons.dll,48
Синхронизировать папку/файл под курсором


-1
где em_SyncOpen= это пользовательская команда, представляющая SYNCOPEN = (можно вместо пользовательской подставить встроенную команду cm_FileSync, чтобы сравнение не начиналось сразу после открытия диалога).
Если требуется предупреждение об отсутствии в целевом каталоге папки или файла с тем же именем, что под курсором в исходной панели, то сцепка команд может быть такой:
Code:
524,4006,524,4006,em_SelT,cm_select,em_SyncOpen=,524,4006,524,4006
В ней добавлена пользовательская команда em_SelT, представляющая SELECTFILESBT с %Z%N в строке параметров.

Кнопка для синхронизации одноимённых папок:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_EXE%
/S=S:= %Z%X%P%x%N %X%T%x%N
wcmicons.dll,48
Синхронизировать папку под курсором с одноимённой в другой панели


-1
Чтобы сравнение не начиналось сразу после открытия диалога, следует убрать знак = после двоеточия.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Thu Jul 25, 2019 09:38    Post subject: Reply with quote

Поскольку время правки предыдущего сообщения истекло, выложу подправленную (с кавычками) кнопку здесь
Code:
TOTALCMD#BAR#DATA
%COMMANDER_EXE%
/S=S:= %Z%X"%P%x"%N %X"%T%x"%N
wcmicons.dll,48
Синхронизировать папку под курсором с одноимённой в другой панели


-1
Если под курсором [..], то файловые панели синхронизируются целиком.
Помимо синхронизации папок кнопка подходит и для сравнения одноимённых файлов архивов.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Fri Aug 16, 2019 15:32    Post subject: Reply with quote

Отголосок этой темы. Кнопка с утилитой TCFS2.
Функции дополнительного модуля TCFS2Tools не используются.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_temp, cmd, `SyncOpen = Несуществующее имя шаблона`) tem(em_temp)
delay(200) if(findwnd(`#32770`)!=0, delay(1000) + send(`{ESC 2}`, findwnd(`#32770`)), loop(if(findwnd(`TCmpForm`)!=0 && findwnd(`TCheckEditBox`)==0, 0*send(`+{END}^%%l`, findwnd(`TCmpForm`))*delay(100)+1, 0)) + if(findwnd(`TCmpForm`)!=0, eval(send_wait(`{ENTER}`, findwnd(`TCheckEditBox`),1)) + loop(if(findwnd(`TCmpForm`)==0, 0, 0*send(`~(%%ы)`, findwnd(`TCmpForm`))*delay(100)+1)) + if(msg($432,1000)-1, tcm(540), tcm(4002) + tcm(540) + tcm(4001))))" %Z
WCMICONS.DLL,48
Копировать СЛЕВА  -->  НАПРАВО метки даты/времени одноимённых файлов


-1
Для поиска одноимённых файлов и копирования их меток даты/времени используется инструмент синхронизации каталогов.
Если выделения в файловых панелях нет, то они обрабатываются целиком (с учётом подкаталогов).
Если выделены папки/файлы (не важно в какой из панелей, можно выбирать и в обеих), то в последующих операциях участвуют только они.
Какая из панелей активна, значения не имеет.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Wed May 06, 2020 16:52    Post subject: Reply with quote

Кнопка с утилитой TCFS2 для поиска с плагинами.
Функции дополнительного модуля TCFS2Tools не используются.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_TempParam, cmd, `%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_tcini(Searches, $tmp_plugin,`) set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_TempParam, param,
<`?       ` tc.writedate >= 06.05.20 `                                                                                          ) tem(em_temp)"`>) set_ini(`%%COMMANDER_PATH%%\usercmd.ini`, em_temp, cmd, `cd >$tmp`) set_tcini(Searches, $tmp_SearchIn, ``) set_tcini(Searches, $tmp_SearchFor, ``) set_tcini(Searches, $tmp_SearchText, ``) set_tcini(Searches, $tmp_SearchFlags, ``) tem(em_TempParam) eval(send_wait(`{HOME}^{RIGHT 2}`, findwnd(`TSTDTREEDLG`)))"
wcmicons.dll,24
Задать параметры пользовательского шаблона $tmp для поиска с плагинами| и применить фильтр с ним в активной панели
tc.writedate >= 05.05.20 & tc.writedate <= 06.05.20 | tc.ext = txt | exif.ISO = 400 | age.Changed.Minutes < 1 | (Seconds Minutes Hours Days Weeks Months Years)
Путь к утилите TCFS2 заменить на свой (в двух местах кода кнопки).
В поле "Путь запуска:" приведено несколько примеров для правки поля "Параметры:" (в косых кавычках).
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Tue Jun 02, 2020 10:58    Post subject: Reply with quote

Кнопка (версия TC 9.0+) для поиска файла/каталога под курсором (активной панели) в неактивной.
Требуется утилита TCFS2, функции дополнительного модуля TCFS2Tools не используются.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "if(msg($432,1007-msg($432,1000)), varset(1,1), varset(1,0)) set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_temp, cmd, `LOADSEARCH $tmp`) set_tcini(Searches, $tmp_SearchFlags,
`1|0020`  varget(1)  `2000020|||||||||0000|||`) if(null("%N"),set_tcini(Searches, $tmp_SearchFor, ``), set_tcini(Searches, $tmp_SearchFor, `%Z%N.`)) set_tcini(Searches, $tmp_SearchIn, ``) set_tcini(Searches, $tmp_SearchText, ``) set_tcini(Searches, $tmp_plugin, ``) tcm(4006) tem(em_Temp) eval(send_wait(`{ENTER}`, findwnd(`TFindFile`)))"
wcmicons.dll,47
Поиск текущего файла/каталога в неактивной панели |(в том числе в архивах)
Если в активной панели под курсором `..`, то TC будет искать все файлы/каталоги.
При наличии выделения в неактивной панели поиск выполняется только в выделенных файлах/каталогах.
Чтобы исключить поиск в архивах, следует в поле "Параметры:" первую 1 заменить на 0.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Sat Jul 18, 2020 09:21    Post subject: Reply with quote

Отсюда

kirimbay
На скорую руку, для TC версии 9.0 и выше, кнопка для выделения объектов между двумя выделенными.
Требуется утилита TCFS2, функции дополнительного модуля TCFS2Tools не используются.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(msg($432,1004+msg($432,1000))==2,tcm(2049)+tcm(2053)+varset(1,msg($432,1006+msg($432,1000))-msg($432,1008+msg($432,1000)))+tcm(2053)+varset(2,msg($432,1006+msg($432,1000))-msg($432,1008+msg($432,1000)))+if(varget(1)==varget(2),varset(1,0))+msg($433,2049,varget(1))+msg($433,2936,varget(2)-varget(1)),tem(`em_>Выделите_2_объекта!`))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jul 22, 2020 21:53    Post subject: Reply with quote

Пожалуй, поделюсь своим более лаконичным вариантом без передёргиваний выделения и с нормальным текстом окна ошибки:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
if(msg(1074,msg(1074,1000)+1004)==2,msg($0B,0)+tcm(2057)+tcm(2054)+tcm(2053)+varset(1,msg(1074,1006+msg(1074,1000)))+tcm(2054)+msg(1075,2936,varget(1)-msg(1074,1006+msg(1074,1000)))+msg($0B,1)+redraw()+tcm(2918),tcm(-1,1)+eval(settext_wait("`[✖] Выделите 2 объекта!`",findwnd(Static,,findwnd(#32770)))))
wciconex.dll,73
Выделить всё в границах двух выделенных объектов
Разумеется, никаких ограничений на типы объектов (аля 'файлы/папки') нет. Т. е. работать будет как в любых виртуальных папках, так и в списках плагинов и структурах wfx-плагинов.
P. S.: Перерисовка окна не вызывает таких неприятностей, как моргания цветов, прыжков курсора со сдвигом списка туда-сюда, что в примерах выше и ниже.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Thu Jul 23, 2020 15:40; edited 1 time in total
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Thu Jul 23, 2020 15:01    Post subject: Reply with quote

Укоротил вариант, что для TC версии 9.0+ и без ненужной перерисовки панелей инструментов (главной и вертикальной), панели функциональных клавиш, командной строки, а также вкладок, заголовков панели, заголовков табуляторов и др. элементов интерфейса окна 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_>Выделите_2_объекта!))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными
Если есть желание избавиться и от передёргиваний, и от ненужной перерисовки, то можно попробовать вариант,
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(msg($432,1004+msg($432,1000))==2,msg($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)))+tcm(2012)+msg($0B,1)+tcm(2012),tem(em_>Выделите_2_объекта!))"
WCMICONS.DLL,39
Добавить выделение файлов/папок между двумя выделенными
где для перерисовки используется задвоенная команда 2012 (или 330).
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jul 24, 2020 12:17    Post subject: Reply with quote

Легкая правка моего варианта без каких-либо предложенных далее артефактов выделения и псевдодорисовки
(особенно тех, что невооружённым глазом видны и остаются при наличии на предыдущем плане браузера, например, с видео на паузе):
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef
if(msg(1074,msg(1074,1000)+1004)==2,sendmsg(msg(1074,3),$0B,0)+tcm(2057)+tcm(2054)+tcm(2053)+varset(1,msg(1074,1006+msg(1074,1000)))+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("`[✖] Выделите 2 объекта!`",findwnd(Static,,findwnd(#32770)))))
wciconex.dll,46
Выделить всё в границах двух выделенных объектов

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Sat Jul 25, 2020 11:49; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... , 43, 44, 45  Next
Page 44 of 45

 
Jump to:  
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