[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Andrey_A, simup, ХарВик, chip642  
TCIMG - Мощное средство автоматизации
Andrey_AДата: Вторник, 12.06.2012, 04:41 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7204
Награды: 144
Репутация: 132
Аверин Андрей
TCIMG




Дата выпуска: 30.07.2025
Версия: 35.4
Автор: Averin Andrey
Скачать: Страница обновления TCIMG
Скачать 2 : Ссылка обновления TCIMG
Справка: TCIMG ONLINE

'=============================== Спасибо ================================
Выражаю искреннюю благодарность всем, кто напрямую или косвенно помогал и повлиял на развитие проекта, отдельное спасибо: Loopback, LonerD, GGG8, ХарВик, shveicar, Yashied, asmadeus, amel27, madmasles, CreatoR, Ward, thesittingbull, Metchnik, InnI, wakillon, Yaroslav, Abel11, chip642, Deus-V, inververs, sims, BezDNaU, Veosys, getaumy, UEZ, homer77, wpitty, JKT, vakula, boriska, =BD=, G.Sandler, Mrakobes, mopodede, Skif_off, wpitty, Rustamer, wpitty, Mchoff, iifoks447, Andarin, oshizelly, Egorkaru, coherent, Атос, yug78, vanhallen, mopodede, Афи, Axel, addhaloka, Matros, Finn, Aleks431, Zmy, Паразит, TarasBY, Userrr, Jury Abel', VikTor1985, HA3APET, alexxxxx, konuk2007, Lupo73, Prog@ndy, Avada, monoceres, авторам библиотеки MediaInfo, авторам Carl Worth и Behdad Esfahbod библиотек Cairo, авторам библиотеки librhash, авторам библиотеки Bass, авторам библиотеки FFmpeg, автору Zenden за утилиту ImgUpload, Slava10779, maK, zep, Rako1, zzzten, Nuker-Hoax, regist123, shusler, sibirnik, Romario, Lord_NEVR, Ли Чжицзюнь (李志军), ruizone (瑞), alexostrov, CaptainFlint, Thomasmolover, eukalyptus, Tuape, Helpmister, NIKZZZZ, smit0966, rediffusion, zybrevl, Rioran, I95, Vimann, And000010, VasRoman, MonarchLFV, jktgeorge, Mario Arhivario, Songbird, Malkey, Placetoload, ziabriev, Antonij72, weaponx, Angelfuze, Pendelgrast, smit0966, Jacob, Rakosvist, Karbucho, Karolinka69, SLIM, ogenry, VladMo, jentoso, Kindom, Megakrok, Altruumann, vaskamy, Alizadombej, Krasovskii, Kurolesova, Svetka99, AkulaBig, Proudhawk, Yymn7, vruzin, Xprajs, Danyfirex, Party Hu, Lost Zombie, derrikF, Karabush, aorist, o2candoo, goog0le, P8gonyajlo, destiny child, Alex Penguin, Broken_Brain, rupinskiy, FedorLashchenko, destiny_child, JenTOSO, моим близким друзьям и родственникам: одним спасибо, что поддерживали, другим - за то, что не мешали!
'=======================================================================
TCIMG - утилита для вызова различных команд Total Commander и выполнения дополнительных действий.
Мощное средство для расширения функциональности Total Commander и других программ.
Направлена на автоматизацию монотонных действий, связанных с файловыми, системными, программными, оконными операциями.
Полностью портабельна, т.е. не требует установки и не вносит в реестр или куда-либо ещё дополнительную информацию.
Утилита представляет из себя скомпилированный AutoIt3-скрипт.
Утилиту разрешено распространять только с указанием сайта поддержки: http://tc-image.3dn.ru




Кнопки для TCIMG

Регулярные выражения

Control Viewer - Просмотр информации элементов окна

Страница обновления TCIMG

Как правильно обновлять утилиту TCIMG?



В справке TCIMG.chm более 16.850 примеров применения.

Актуальная версия (бета версии) в последних сообщениях темы

Тема развития справки утилиты

Расширение функционала TCIMG

Помощь и советы ПОДКЛЮЧЕНИЕ ПРОГРАММ и СКРИПТОВ

Для запросов кнопок тема ЗАКАЗ КНОПОК

Дополнительное обсуждение TCIMG на forum.ru-board

Группа в Telegram


Сборки программ, в которых участвует утилита TCIMG, в них так же можно увидеть много интересных примеров:
AkelPad Image - сборка текстового редактора AkelPad (автор Andrey_A)
TC IMAGE - сборка файлового менеджера Total Commander (автор Andrey_A)
TC VIM - сборка файлового менеджера Total Commander (автор Matros)
TC Universal Edition - сборка файлового менеджера Total Commander (авторы Yaroslav & asmadeus)
TC Hot-Shot - сборка файлового менеджера Total Commander (автор ice_daemon)
TC Titan Portable - сборка файлового менеджера Total Commander (автор pcDenPro)
TC AkulaBig - сборка файлового менеджера Total Commander (автор AkulaBig)
TCnative - сборка файлового менеджера Total Commander (автор ziabriev)






 
MonarchLFVДата: Четверг, 16.01.2020, 02:18 | Сообщение № 3346
Майор

На сайте с: 04.06.2015
Сообщений: 81
Награды: 1
Репутация: 3
Andrey_A, предложенная вами кнопка как-то совсем не работает.
Да и PRESW (примерно 20% срабатываний) как-то похуже срабатывает, чем PRESS (примерно 50% срабатываний). Проверка по первой букве не особо нужна, так как не владею 10-пальцевым приемом печатания, поэтому иногда не смотрю на монитор, и то что нужно было напечатать на английском - русское, а русское - на английском, нужна именно инверсия раскладки. Выход мне совсем не нужен, поэтому упростил.
Код
<PRESS=13> keybd=0~~^c bufsr=@@QWERTYinENGRUS1!!1 clpget


И сдалал новую QWERTYinENGRUS1 (ранее не обрабатывались символы "?", "." и др.), выкладываю:


Жаль, но все равно срабатывает через раз (примерно 50/50%). Поэтому приходится несколько раз жать кнопку Pause для получения эффекта.


Сообщение отредактировал MonarchLFV - Четверг, 16.01.2020, 03:03
 
Andrey_AДата: Четверг, 16.01.2020, 09:55 | Сообщение № 3347
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7204
Награды: 144
Репутация: 132
Аверин Андрей
MonarchLFV, я запустил 2 команды по очереди с PRESW и с PRESS (чтобы обе висели в системе) - обе команды отрабатывают на 100% (последняя чуть помедленнее... ), возможно что-то ещё влияет ... система, компьютер, занятость процессов. пересечение клавиш, и.т.д , потому что насторожила фраза
Цитата MonarchLFV ()
предложенная вами кнопка как-то совсем не работает.

Когда PRESW работает быстрее и по коду и по результату...


 
MonarchLFVДата: Четверг, 16.01.2020, 11:20 | Сообщение № 3348
Майор

На сайте с: 04.06.2015
Сообщений: 81
Награды: 1
Репутация: 3
Andrey_A,
Цитата
возможно что-то ещё влияет ... система, компьютер, занятость процессов.

Да, видимо что-то еще, тем более команду keybd вы не особо рекомендуете использовать, хотя без нее тоже через раз срабатывает (Ctrl+C сам изначально зажимал). Система вроде норм win10 x64 и по параметрам железа все ок. Где-то ему времени не хватает на сработку, но на каком именно шаге непонятно. Поэтому буду использовать пока свою интерпретацию, как наиболее рабочую конкретно на моем ПК.

Добавлено (17.01.2020, 07:00)
---------------------------------------------
Andrey_A, Протестировал дома (win7 x64) ваш код -реально работает на ура!!! Но на работе отказывается нормально работать. Получается сильно зависит от машины.

 
Crack_55Дата: Среда, 22.01.2020, 20:11 | Сообщение № 3349
Лейтенант

На сайте с: 10.04.2013
Сообщений: 65
Награды: 0
Репутация: 2
Пытаюсь настроить плавающую панель инструментов для переименований, вылезли такие проблемы:
1. Не сохраняются настройки панели(размер кнопок, цвет панели, цвет поля перетаскивания), при запуске на следующий день - настройки по умолчанию.
2. Не срабатывают кнопки типа:
Код
renms=%L||&&(?i)^[^a-zа-яё]+(.+)!!$1 ;; переименовать выделенные объекты: удалить в базовом имени все не буквенные символы до первой буквы

Код
slist=%WL||save<%%TCIMG_PATH%%\Files\Lists\BeforeRenaming.txt>||code<4> renms=%UL||&&(?i)[^a-zа-яё\s]!!~~||#G7||upd<1> creat=%%TCIMG_PATH%%\Files\Lists\||AfterRenaming||content<$GLOBALRENMS>||owrite<1>||code<4> ;; в именах выделенных объектов удалить все не буквенные символы и удалить лишние пробелы (с возможностью отката)

Жду советов! :'( :'( :'(
 
sibirnikДата: Среда, 22.01.2020, 20:21 | Сообщение № 3350
Генерал-лейтенант

На сайте с: 27.08.2014
Сообщений: 742
Награды: 26
Репутация: 10
Crack_55,
Всё работает...Обновись до последней версии TCIMG.http://wincmd.ru/plugring/TCIMG.html


Сообщение отредактировал sibirnik - Среда, 22.01.2020, 20:23
 
Crack_55Дата: Среда, 22.01.2020, 20:31 | Сообщение № 3351
Лейтенант

На сайте с: 10.04.2013
Сообщений: 65
Награды: 0
Репутация: 2
Работает с плавающей панели инструментов? Просто кнопки у меня тоже работает.

Сообщение отредактировал Crack_55 - Среда, 22.01.2020, 20:32
 
chip642Дата: Среда, 22.01.2020, 20:46 | Сообщение № 3352
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1507
Награды: 62
Репутация: 58
Команда xbarx

[helpquote]
Для запуска команды через Total Commander в начале строки параметров необходимо прописать:
total=0 или total=1 (1 - активирует и передает фокус окну Total Commander, 0 - не передает фокус)
[/helpquote]

ТО есть, если в командах используются параметры TC: %L, %UL, %P%N, %WL ... .

Код
total=1 renms=%L||&&(?i)^[^a-zа-яё]+(.+)!!$1 ;; переименовать выделенные объекты: удалить в базовом имени все не буквенные символы до первой буквы
 
Crack_55Дата: Среда, 22.01.2020, 21:36 | Сообщение № 3353
Лейтенант

На сайте с: 10.04.2013
Сообщений: 65
Награды: 0
Репутация: 2
Цитата chip642 ()
total=1 renms=%L||&&(?i)^[^a-zа-яё]+(.+)!!$1

Так команду отрабатывает! Буду проверять остальные кнопки!! :* А насчёт настроек, что может быть?
 
chip642Дата: Среда, 22.01.2020, 21:47 | Сообщение № 3354
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1507
Награды: 62
Репутация: 58
Цитата Crack_55 ()
А насчёт настроек, что может быть?


Если настройки прописаны в TCIMGU.ini, то проблем быть не должно, у меня во всяком случае их нет.
 
Crack_55Дата: Среда, 22.01.2020, 22:02 | Сообщение № 3355
Лейтенант

На сайте с: 10.04.2013
Сообщений: 65
Награды: 0
Репутация: 2
Что-то с откатами проблемы. Пару раз получилось, а потом не восстанавливает. Посмотрел файл *BeforeRenaming.txt* остался старый!!? и не срабатывает наверно по этому, новый не создаёт.??!

Добавлено (22.01.2020, 22:09)
---------------------------------------------
Да, удаляет но не создаёт новый *BeforeRenaming.txt*

 
chip642Дата: Четверг, 23.01.2020, 02:11 | Сообщение № 3356
Генералиссимус

На сайте с: 24.04.2013
Город: Москва
Сообщений: 1507
Награды: 62
Репутация: 58
Crack_55

У меня всё отрабатывает должным образом с плавающей панели.

Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
total=1 slist=%WL||save<%%TCIMG_PATH%%\Files\Lists\BeforeRenaming.txt>||code<4> renms=%UL||&&(?i)[^a-zа-яё\s]!!~~||#G7||upd<1> creat=%%TCIMG_PATH%%\Files\Lists\||AfterRenaming||content<$GLOBALRENMS>||owrite<1>||code<4>
WCMICONS.dll,19
В именах выделенных объектов удалить все небуквенные символы + удалить лишние пробелы (с возможностью отката)

-1
 
Crack_55Дата: Четверг, 23.01.2020, 11:37 | Сообщение № 3357
Лейтенант

На сайте с: 10.04.2013
Сообщений: 65
Награды: 0
Репутация: 2
СПС за пример кнопки, разобрался! Я ставил total=1 перед renms, а надо в начале команды!! Всё ОК :* 0:)
Сегодня звёзды стали правильно! Настройки тоже сохранились!
 
Andrey_AДата: Четверг, 23.01.2020, 21:24 | Сообщение № 3358
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7204
Награды: 144
Репутация: 132
Аверин Андрей
Цитата
Можно ли как-то получить список путей из AkelPad...


Реализовано: Тестовая версия TCIMG 271_b5, в версии TCIMG 27.0 замените соответствующие файл(ы)

Описание infos

[helpquote]
[+] Оптимизирован параметр [tc] (см. Дополнение №12)
- добавлены параметры "K1,K2,N1:M1,N2:M2" для режимов "LL", "RL", "AL", "TL", "LF", "RF", "AF", "TF"
[±] Исправлены ошибки в параметре path<38>, в команде symxx
[+] Оптимизирован параметр info (см. Дополнение №10#x42)
- в режимы "x42", "x43", "x44", "x45" добавлен подпараметр "1"
[+] Добавлен слеш для путей переименованных папок в команде renms в глобальной переменной GLOBALRENMS1
[+] Оптимизирована команда infos
- добавлен режим "8||1||Param"
[/helpquote]

Последние примеры:
Код

"infos=8||1||0" - получение информации всех файлов открытых на редактирование в AkelPad
"infos=8||1||1" - получение информации всех файлов открытых на редактирование в AkelPad (в обратном порядке)

"infos=8||1||0||1 GLOBALINFOS<a> GLOBALINFOS0<a>" - записать в глобальные переменные информацию всех файлов открытых на редактирование в AkelPad

"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|8|(txt|ini)$ GLOBALARR2D<a>" - получить информацию для файлов ini и txt открытых на редактирование в AkelPad
"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|8|(txt|ini)$|^$ GLOBALARR2D<a>" - получить информацию для файлов ini, txt и без расширений открытых на редактирование в AkelPad
"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|16|^1251$ GLOBALARR2D<a>" - получить информацию для файлов с кодировкой 1251 открытых на редактирование в AkelPad



.


 
shveicarДата: Четверг, 23.01.2020, 21:56 | Сообщение № 3359
Генерал-лейтенант

На сайте с: 18.05.2012
Город: Санкт-Петербург
Сообщений: 570
Награды: 10
Репутация: 23
Спасибо Андрей.
Ждем новых прорывов для автоматизации в этом году :)

 
Andrey_AДата: Суббота, 01.02.2020, 21:59 | Сообщение № 3360
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7204
Награды: 144
Репутация: 132
Аверин Андрей
Продолжаем)

Тестовая версия TCIMG 271_b9, в версии TCIMG 27.0 замените соответствующие файл(ы)

[helpquote]
[+] Оптимизирован параметр [tc] (см. Дополнение №12)
- добавлены параметры "K1,K2,N1:M1,N2:M2" для режимов "LL", "RL", "AL", "TL", "LF", "RF", "AF", "TF"
[±] Исправлены ошибки в параметре path<38>, в команде symxx, в параметре [image] при использовании одновременно нескольких диалогов
[+] Оптимизирован параметр info (см. Дополнение №10#x42)
- в режимы "x42", "x43", "x44", "x45" добавлен подпараметр "1"
- добавлены режимы "n92", "n93", "n94"
[+] Добавлен слеш для путей переименованных папок в команде renms в глобальной переменной GLOBALRENMS1
[+] Оптимизирована команда infos
- добавлен режим "8||1||Param"
[+] Добавлена передача информации глобальных переменных в команду barsw
[/helpquote]

Последние примеры:
Код

"hends=<info=x44>||&&^(\d+)(.*,)(\d+)$!!${1},${3} markn=2||0:GLOBALHENDS<1>:-1" - в активной панели выделить объекты до первого и после последнего выделенного объекта

"yends=1a2b3c,5a6v7hs??-6, GLOBALYENDS<a> slist=$GLOBALYENDS||?V|$$|'='&StringLen('::') GLOBALSLIST<a>" - получить длину заданных строк
"yends=1a2b3c,5a6v7hs??-6, GLOBALYENDS<a> slist=$GLOBALYENDS||?V|$$|'='&StringRegExpReplace('::','\d',Null) GLOBALSLIST<a>" - получить символы заданных строк
"yends=1a2b3c,5a6v7hs??-6, GLOBALYENDS<a> slist=$GLOBALYENDS||?V|$$|'='&StringLen(StringRegExpReplace('::','\d',Null)) GLOBALSLIST<a>" - получить количество символов заданных строк

"yends=-1??-1||'!!# GLOBALYENDS<a> slist=$GLOBALYENDS||?V|##|StringLen('::') GLOBALSLIST<a>" - получить длину строк из буфера обмена

"dilog=[tc=AL1:3,-3:-1|3|1] GLOBALTCGET1<a>" - получить пути первых и последних 3-х объектов в активной панели
"dilog=[tc=AL1:3,-3:-1d|3|1] GLOBALTCGET1<a>" - получить пути первых и последних 3-х папок в активной панели
"dilog=[tc=AL1:3,-3:-1f|3|1] GLOBALTCGET1<a>" - получить пути первых и последних 3-х файлов в активной панели

"hends=<info=x44|1>||&&^(\d+)(.*,)(\d+)$!!${1}:${3} dilog=[tc=ALGLOBALHENDS<1>|3|1] GLOBALTCGET1<a>" - в активной панели получить пути объектов между первым и последним выделенными объектами

"exect=SplashTextOn('Заголовок',StringReplace(ClipGet(),'&','&&'),200,50)&Sleep(3000)&SplashOff()" - пример окна с текстом из буфера обмена (удвоение для корректного отображения символа "&")

"hends=<info=n49|2000*25/100> GLOBALHENDS<a>" - получить 25% для числа 2000

"<PRESW=13> keybd=0~~^c exect=$var_s=StringRegExp(StringLeft(ClipGet(),1),'[а-яё]')?_CmdCm('bufsr=@@QWERTYinENG'):_CmdCm('bufsr=@@QWERTYinRUS') keybd=0~~+{INSERT} <PRESW=1B> :EXIT: <PRESWEND>" - при нажатии на клавиши "Pause" проверяет буфер обмена: если первая буква русская, то переводит всё содержимое буфера обмена в клавиатурные английские буквы, если нет, то наоборот, затем вставляет текст в активный окно программы

"infos=8||1||0" - получение информации всех файлов открытых на редактирование в AkelPad
"infos=8||1||1" - получение информации всех файлов открытых на редактирование в AkelPad (в обратном порядке)

"infos=8||1||0||1 GLOBALINFOS<a> GLOBALINFOS0<a>" - записать в глобальные переменные информацию всех файлов открытых на редактирование в AkelPad

"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|8|(txt|ini)$ GLOBALARR2D<a>" - получить информацию для файлов ini и txt открытых на редактирование в AkelPad
"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|8|(txt|ini)$|^$ GLOBALARR2D<a>" - получить информацию для файлов ini, txt и без расширений открытых на редактирование в AkelPad
"infos=8||1||0||1 arr2d=$GLOBALINFOS||22|16|^1251$ GLOBALARR2D<a>" - получить информацию для файлов с кодировкой 1251 открытых на редактирование в AkelPad

"sends=TCGINFO<{MySwithBar}>||@CRLF!! barsw=GLOBALSENDS<1>" -  - переключение между панелями по кругу (информация берётся из секции {MySwithBar} в файле SHAPED.tcg)

"slist=PS<"%P"//1//0//:zeroext:> GLOBALSLIST<a>" - получить список файлов без расширения в активной панели без рекурсии
"slist=PS<"%P"//1//-1//:zeroext:> GLOBALSLIST<a>" - получить список файлов без расширения в активной панели с рекурсией (во всех подпапках)
"slist=PS<"%P"//1//0//:zeroext:> renms=$GLOBALSLIST||extplus<>||upd<1>" - получить список файлов без расширения в активной панели без рекурсии и переименовать их в правильное расширение (взятое из их внутренних меток)
"slist=PS<"%P"//1//-1//:zeroext:> renms=$GLOBALSLIST||extplus<>||upd<1>" - получить список файлов без расширения в активной панели с рекурсией (во всех подпапках) и переименовать их в правильное расширение (взятое из их внутренних меток)

"sends=aaa_bbb_ccc555zzz??~0!![^\d]+|[\d]+ GLOBALSENDS<a>" - пример разделения строки по регулярному выражению включая разделители в результат

"slist=[tc=AM]||##<info=o72:://> GLOBALSLIST<a> sends=$GLOBALSLIST??-2||&&(?m)^([A-zА-яЁё\d]+).*!!$1||formt<31> GLOBALSENDS<a>" - из выделенных файлов получить неповторяющие части имени
"slist=[tc=AM]||##<info=o72:://> sends=$GLOBALSLIST??-2||&&(?m)^([A-ZА-ЯЁ]{1,}[a-zа-яё\d]*).*!!$1||formt<31> vlist=$GLOBALSLIST@$GLOBALSENDS@¤||formt<sps183> GLOBALVLIST<a>" - из выделенных файлов получить уникальные длинные, отсекая короткие

"hends=<info=n92|1200=800:12|2> GLOBALHENDS<a>" - получить строку из разделения на 2 без остатка каждой цифры заданной строки
"hends=<info=n92|1000000|2> a<a>" - получить строку из разделения на 2 без остатка каждой цифры заданной строки
"hends=<info=n92|1200=800|2>??-4 GLOBALHENDS<a>" - получить строку из разделения на 2 без остатка каждой цифры заданной строки
"hends=<info=n92|999|3>??-4 GLOBALHENDS<a>" - получить строку из разделения на 3 без остатка каждой цифры заданной строки
"hends=<info=n92|1000000|4>??-4 GLOBALHENDS<a>" - получить строку из разделения на 4 без остатка каждой цифры заданной строки

"hends=<info=n93|1000000|2> GLOBALHENDS<a>" - получить строку из разделения на 2 с округлением в меньшую сторону каждой цифры заданной строки
"hends=<info=n93|1000000|1.1> GLOBALHENDS<a>" - получить строку из разделения на 1.1 с округлением в меньшую сторону каждой цифры заданной строки
"hends=<info=n94|1000000|2> GLOBALHENDS<a>" - получить строку из разделения на 2 с округлением в большую сторону каждой цифры заданной строки
"hends=<info=n94|1000|1.1>??-4 GLOBALHENDS<a>" - получить массив из разделения на 1.1 с округлением в большую сторону каждой цифры заданной строки
"hends=<info=n94|1000000|2|1000> GLOBALHENDS<a>??-4 GLOBALHENDS<a>" - получить массив из разделения на 2 с округлением в большую сторону каждой цифры заданной строки (производить деление до числа 1000)



.


 
Поиск:

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