TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

В 400-x бетах в секции макросов TCFS2.ini пропал(?) locktc=msg($0B, #1-0 > 0 ? 0 : 1, 0).
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Спасибо за замечание, я видел, что он куда-то пропал, и уже вернул его.

Выложил последюю версию.

TCFS2 2.2.0.444 (изменения с версии 2.1.0.394):
+ функция loop
+ специальная обработка двойных кавычек в командной строке: внутри косых строк они игнорируются
+ функции varcnt, varget, varset
+ режим передачи точных строк для функции send

+ сложные строки, которые формируются из множества строк и вычисляемых числовых значений
* предупреждение о конце строки при чтении параметров функций
790
Сообщения: 357
Зарегистрирован: Сб авг 09, 2008 18:08

Сообщение 790 »

TCFS2 2.2.0.444
скачка блокируется как вирусная угроза и бла-бла-бла :cry:
TC 11.58 32/64, Win10x64

Cuda уехал text, он был ещё вчераа...
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Что я могу поделать, умом писателей антивирусов обделили, считают себя умными и на компромиссы не идут (общался уже с поддержкой NOD, если интересно, поищи в теме).

Вот анализ с VirusTotal, большинство (в том числе самые известные) согласны, что ничего нет.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Как в кнопке

Код: Выделить всё

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(tcini(TCFS2, ColorOff, 0, 0), set_tcini(Colors, ColorFilter2, `>Выкл Файлы не старше 1 часа`)+set_tcini(TCFS2, ColorOff, 1), set_tcini(Colors, ColorFilter2, `>Файлы не старше 1 часа`)+set_tcini(TCFS2, ColorOff, 0)) tcm(494, 1) delay(200) send(`+{TAB 5}  {ENTER}`, findwnd(`TDLGCONFIGALL`))"
wcmicons.dll,20
Подсвечивание файлов не старше 1 часа: вкл/выкл


-1
обойтись без создания дополнительного числового ключа (секция [TCFS2], ключ ColorOff)?
Другими словами, как сравнить нечисловые значения из tcini?

P.S. В кнопке используется значение фильтра из секции [Colors] wincmd.ini

Код: Выделить всё

ColorFilter2=>Файлы не старше 1 часа
Последний раз редактировалось sa Пт июн 06, 2014 01:43, всего редактировалось 1 раз.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

На данный момент TCFS2 не позволяет сравнивать строки, только записывать.

Пришло в голову следующее извращение: использовать уникальные цвета. Как вариант, младший бит значения цвета устанавливаешь в 1, когда фильтр включён, и в 0, когда выключен. Проверить легко, на глаз отличить крайне сложно (надо иметь крайне острое зрение и крайне дорогой монитор, чтобы различать 254 и 255).

Зная цвет, можно даже не привязываться к номеру шаблона, а делать цикл, в котором искать этот цвет (считывать `ColorFilter` номер `Color` и сравнивать с цвет&~1, чтобы игнорировать младший бит), и переключать найденный шаблон. Так можно находить множество шаблонов, даже если цвета одинаковые (просто слегка изменять оттенки: $01, $0100, $010000 - это младшие биты трех цветовых компонент, итого имеем 3 флага под свои нужды, а если задействовать ещё и следующие биты, то ещё больше - и опять же, при почти неотличимых оттенках).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Не, рубятушки, тут всё проще.

Код: Выделить всё

/ef "if(tcini(Colors,ColorFilter2,#),set_tcini(Colors,ColorFilter2,`>Последние 5 минут`),set_tcini(Colors,ColorFilter2,0)) tcm(494,1) eval(send_wait(`{TAB 5}  {ENTER}`,findwnd(`TDLGCONFIGALL`)))"
только TCFS2 спотыкается на > и с пробелами в такой записи не дружит (я их поубирал везде).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):только TCFS2 спотыкается на > и с пробелами в такой записи не дружит (я их поубирал везде).
Это уже баг. У меня тут зачем-то вызывается вычислитель выражения вместо банального преобразования строки в число. Можешь представить, какое выражение ему приходилось обрабатывать... И никому раньше такая ерунда не приходила в голову. :D

TCFS2 Build 446

Исправил чтение числа, теперь читает до первой не-цифры. В вашем случае при шаблоне всегда будет не-цифра, т.е. число всегда будет 0, поэтому для возможности сравнения необходимо записывать туда любое ненулевое число, которое будет означать, что шаблон отключён.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MVV писал(а):На данный момент TCFS2 не позволяет сравнивать строки, только записывать.
В таком случае и с дополнительным числовым ключом не так уж накладно будет использовать кнопку.

Добавлено спустя 45 минут:
tcini(<section>, <key>, <value>|`<string_value>`, [<error_value>], [<use_redirection>])
Здесь (1.1. Supported functions) |`<string_value>` - наверное, опечатка.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Можешь представить, какое выражение ему приходилось обрабатывать...
Приблизительно. :)
MVV писал(а):поэтому для возможности сравнения необходимо записывать туда любое ненулевое число
Фигня в том, что как раз нулевое нужно (если я правильно понял - куда). :roll:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

sa,
Да, в английском варианте упустил, в русском правильно написано.

Flasher,
Тебе главное - различать шаблон и пустышку. А где какое число, без разницы. Если шаблон читается как нулевое число, вместо пустышки указывай ненулевое, и будет тебе счастие. :) Проверяешь, ноль ли, если ноль, значит, надо записать не ноль, иначе - записать шаблон. Вообще, по идее в фильтр надо не 0 записывать, а что-то более уникальное, т.к. это значение потом будет служить маской и искаться в именах файлов. Подойдёт что-нибудь вроде 1293721. :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):если ноль, значит, надо записать не ноль, иначе - записать шаблон.
Я правильно понимаю, что всё утыкается в текстовое значение, которое воспринимается как 0?
MVV писал(а):по идее в фильтр надо не 0 записывать, а что-то более уникальное, т.к. это значение потом будет служить маской и искаться в именах файлов.
Что ты понимаешь под фильтром? 0 записывается вместо названия шаблона (значение ключа). Вот я и пишу, что тут другой вариант не проходит.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Я правильно понимаю, что всё утыкается в текстовое значение, которое воспринимается как 0?
Да. Если значение начинается не с цифры, оно воспринимается как 0.
Что ты понимаешь под фильтром? 0 записывается вместо названия шаблона (значение ключа). Вот я и пишу, что тут другой вариант не проходит.
Ключ называется ColorFilter2 - вот и фильтр. :) Правильное значение фильтра содержит значение вида ">ИмяШаблона", которое воспринимается как 0, а своё неправильное ты волен начать любым отличным от 0 числом, и далее можно приписать любую абракадабру, чтобы тотал ни один файл не подсветил этим фильтром. Вчера мне пришло в голову только уникальное числовое значение, а сейчас я вижу, что можно вообще любое, лишь бы начиналось с цифры, отличной от 0. Твой пример на новый лад:

Код: Выделить всё

/ef "if(!tcini(Colors,ColorFilter2,#),set_tcini(Colors,ColorFilter2,`>Последние 5 минут`),set_tcini(Colors,ColorFilter2,`7хрюнделей`)) tcm(494,1) eval(send_wait(`{TAB 5}  {ENTER}`,findwnd(`TDLGCONFIGALL`)))"
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чего-то не срабатывает if..
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher
+{TAB 5}
Ответить