TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Спасибо за замечание, я видел, что он куда-то пропал, и уже вернул его.
Выложил последюю версию.
TCFS2 2.2.0.444 (изменения с версии 2.1.0.394):
+ функция loop
+ специальная обработка двойных кавычек в командной строке: внутри косых строк они игнорируются
+ функции varcnt, varget, varset
+ режим передачи точных строк для функции send
+ сложные строки, которые формируются из множества строк и вычисляемых числовых значений
* предупреждение о конце строки при чтении параметров функций
Выложил последюю версию.
TCFS2 2.2.0.444 (изменения с версии 2.1.0.394):
+ функция loop
+ специальная обработка двойных кавычек в командной строке: внутри косых строк они игнорируются
+ функции varcnt, varget, varset
+ режим передачи точных строк для функции send
+ сложные строки, которые формируются из множества строк и вычисляемых числовых значений
* предупреждение о конце строки при чтении параметров функций
Что я могу поделать, умом писателей антивирусов обделили, считают себя умными и на компромиссы не идут (общался уже с поддержкой NOD, если интересно, поищи в теме).
Вот анализ с VirusTotal, большинство (в том числе самые известные) согласны, что ничего нет.
Вот анализ с VirusTotal, большинство (в том числе самые известные) согласны, что ничего нет.
Как в кнопке
обойтись без создания дополнительного числового ключа (секция [TCFS2], ключ ColorOff)?
Другими словами, как сравнить нечисловые значения из tcini?
P.S. В кнопке используется значение фильтра из секции [Colors] wincmd.ini
Код: Выделить всё
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
Другими словами, как сравнить нечисловые значения из tcini?
P.S. В кнопке используется значение фильтра из секции [Colors] wincmd.ini
Код: Выделить всё
ColorFilter2=>Файлы не старше 1 часа
Последний раз редактировалось sa Пт июн 06, 2014 01:43, всего редактировалось 1 раз.
На данный момент TCFS2 не позволяет сравнивать строки, только записывать.
Пришло в голову следующее извращение: использовать уникальные цвета. Как вариант, младший бит значения цвета устанавливаешь в 1, когда фильтр включён, и в 0, когда выключен. Проверить легко, на глаз отличить крайне сложно (надо иметь крайне острое зрение и крайне дорогой монитор, чтобы различать 254 и 255).
Зная цвет, можно даже не привязываться к номеру шаблона, а делать цикл, в котором искать этот цвет (считывать `ColorFilter` номер `Color` и сравнивать с цвет&~1, чтобы игнорировать младший бит), и переключать найденный шаблон. Так можно находить множество шаблонов, даже если цвета одинаковые (просто слегка изменять оттенки: $01, $0100, $010000 - это младшие биты трех цветовых компонент, итого имеем 3 флага под свои нужды, а если задействовать ещё и следующие биты, то ещё больше - и опять же, при почти неотличимых оттенках).
Пришло в голову следующее извращение: использовать уникальные цвета. Как вариант, младший бит значения цвета устанавливаешь в 1, когда фильтр включён, и в 0, когда выключен. Проверить легко, на глаз отличить крайне сложно (надо иметь крайне острое зрение и крайне дорогой монитор, чтобы различать 254 и 255).
Зная цвет, можно даже не привязываться к номеру шаблона, а делать цикл, в котором искать этот цвет (считывать `ColorFilter` номер `Color` и сравнивать с цвет&~1, чтобы игнорировать младший бит), и переключать найденный шаблон. Так можно находить множество шаблонов, даже если цвета одинаковые (просто слегка изменять оттенки: $01, $0100, $010000 - это младшие биты трех цветовых компонент, итого имеем 3 флага под свои нужды, а если задействовать ещё и следующие биты, то ещё больше - и опять же, при почти неотличимых оттенках).
Не, рубятушки, тут всё проще.
только TCFS2 спотыкается на > и с пробелами в такой записи не дружит (я их поубирал везде).
Код: Выделить всё
/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`)))"Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Это уже баг. У меня тут зачем-то вызывается вычислитель выражения вместо банального преобразования строки в число. Можешь представить, какое выражение ему приходилось обрабатывать... И никому раньше такая ерунда не приходила в голову.Flasher писал(а):только TCFS2 спотыкается на > и с пробелами в такой записи не дружит (я их поубирал везде).
TCFS2 Build 446
Исправил чтение числа, теперь читает до первой не-цифры. В вашем случае при шаблоне всегда будет не-цифра, т.е. число всегда будет 0, поэтому для возможности сравнения необходимо записывать туда любое ненулевое число, которое будет означать, что шаблон отключён.
В таком случае и с дополнительным числовым ключом не так уж накладно будет использовать кнопку.MVV писал(а):На данный момент TCFS2 не позволяет сравнивать строки, только записывать.
Добавлено спустя 45 минут:
Здесь (1.1. Supported functions) |`<string_value>` - наверное, опечатка.tcini(<section>, <key>, <value>|`<string_value>`, [<error_value>], [<use_redirection>])
Приблизительно.MVV писал(а):Можешь представить, какое выражение ему приходилось обрабатывать...
Фигня в том, что как раз нулевое нужно (если я правильно понял - куда).MVV писал(а):поэтому для возможности сравнения необходимо записывать туда любое ненулевое число
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa,
Да, в английском варианте упустил, в русском правильно написано.
Flasher,
Тебе главное - различать шаблон и пустышку. А где какое число, без разницы. Если шаблон читается как нулевое число, вместо пустышки указывай ненулевое, и будет тебе счастие.
Проверяешь, ноль ли, если ноль, значит, надо записать не ноль, иначе - записать шаблон. Вообще, по идее в фильтр надо не 0 записывать, а что-то более уникальное, т.к. это значение потом будет служить маской и искаться в именах файлов. Подойдёт что-нибудь вроде 1293721. 
Да, в английском варианте упустил, в русском правильно написано.
Flasher,
Тебе главное - различать шаблон и пустышку. А где какое число, без разницы. Если шаблон читается как нулевое число, вместо пустышки указывай ненулевое, и будет тебе счастие.
Я правильно понимаю, что всё утыкается в текстовое значение, которое воспринимается как 0?MVV писал(а):если ноль, значит, надо записать не ноль, иначе - записать шаблон.
Что ты понимаешь под фильтром? 0 записывается вместо названия шаблона (значение ключа). Вот я и пишу, что тут другой вариант не проходит.MVV писал(а):по идее в фильтр надо не 0 записывать, а что-то более уникальное, т.к. это значение потом будет служить маской и искаться в именах файлов.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Да. Если значение начинается не с цифры, оно воспринимается как 0.Я правильно понимаю, что всё утыкается в текстовое значение, которое воспринимается как 0?
Ключ называется ColorFilter2 - вот и фильтр.Что ты понимаешь под фильтром? 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`)))"